Delegates

Release:trunk
Date:November 03, 2011

Delegates are a cornerstone of the Qt model/delegate/view framework. A delegate is used to display and edit data from a model.

In the Camelot framework, every field of an Entity has an associated delegate that specifies how the field will be displayed and edited. When a new form or table is constructed, the delegates of all fields on the form or table will construct editors for their fields and fill them with data from the model. When the data has been edited in the form, the delegates will take care of updating the model with the new data.

All Camelot delegates are subclasses of QAbstractItemDelegate.

The PyQT website provides detailed information the differenct classes involved in the model/delegate/view framework.

Specifying delegates

The use of a specific delegate can be forced by using the delegate field attribute. Suppose rating is a field of type integer, then it can be forced to be visualized as stars:

from camelot.view.controls import delegates

class Movie(Entity):
  title = Field(Unicode(50))
  rating = Field(Integer)

  class Admin(EntityAdmin):
    list_display = ['title', 'rating']
    field_attributes = {'rating':{'delegate':delegates.StarDelegate}}

The above code will result in:

../_images/StarEditor_editable1.png

If no delegate field attribute is given, a default one will be taken depending on the sqlalchemy field type.

All available delegates can be found in camelot.view.controls.delegates

Available delegates

Camelot includes a number of Qt delegates, most of them are used as default delegates for the various sqlalchemy and camelot field types.

Some delegates take specific arguments into account for their construction. All field_attributes specified for a certain field will be propagated towards the constructor of the delegate. Some of them will be used by the delegate itself, others will be used by the editor, created by the delegate.

BoolDelegate

Custom delegate for boolean values

../_images/BoolDelegate_unselected_disabled.png ../_images/BoolDelegate_unselected_editable.png ../_images/BoolDelegate_selected_disabled.png ../_images/BoolDelegate_selected_editable.png

By default, creates a BoolEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/BoolEditor_disabled_tooltip.png
editable=True ../_images/BoolEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/BoolEditor_editable_tooltip.png
editable=False ../_images/BoolEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/BoolEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/BoolEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

ChartDelegate

Custom delegate for Matplotlib charts

CodeDelegate

../_images/CodeDelegate_unselected_disabled.png ../_images/CodeDelegate_unselected_editable.png ../_images/CodeDelegate_selected_disabled.png ../_images/CodeDelegate_selected_editable.png

Field attributes supported by the delegate :

  • parts
  • separator

By default, creates a CodeEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/CodeEditor_disabled_tooltip.png
editable=True ../_images/CodeEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/CodeEditor_editable_tooltip.png
editable=False ../_images/CodeEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/CodeEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/CodeEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

ColorDelegate

../_images/ColorDelegate_unselected_disabled.png ../_images/ColorDelegate_unselected_editable.png ../_images/ColorDelegate_selected_disabled.png ../_images/ColorDelegate_selected_editable.png

By default, creates a ColorEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/ColorEditor_disabled_tooltip.png
editable=True ../_images/ColorEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/ColorEditor_editable_tooltip.png
editable=False ../_images/ColorEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/ColorEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/ColorEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

ColoredFloatDelegate

Custom delegate for float values.

The class attribute icons is used to customize the icons displayed.
../_images/ColoredFloatDelegate_unselected_disabled.png ../_images/ColoredFloatDelegate_unselected_editable.png ../_images/ColoredFloatDelegate_selected_disabled.png ../_images/ColoredFloatDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a ColoredFloatEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/ColoredFloatEditor_disabled_tooltip.png
editable=True ../_images/ColoredFloatEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/ColoredFloatEditor_editable_tooltip.png
editable=False ../_images/ColoredFloatEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/ColoredFloatEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/ColoredFloatEditor_editable_background_color.png

Static attributes supported by this editor :

  • precision
  • reverse
  • neutral
  • option
  • field_name

Dynamic field attributes supported by the editor :

ComboBoxDelegate

../_images/ComboBoxDelegate_unselected_disabled.png ../_images/ComboBoxDelegate_unselected_editable.png ../_images/ComboBoxDelegate_selected_disabled.png ../_images/ComboBoxDelegate_selected_editable.png

By default, creates a ChoicesEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/ChoicesEditor_disabled_tooltip.png
editable=True ../_images/ChoicesEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/ChoicesEditor_editable_tooltip.png
editable=False ../_images/ChoicesEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/ChoicesEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/ChoicesEditor_editable_background_color.png

Static attributes supported by this editor :

  • nullable
  • field_name

Dynamic field attributes supported by the editor :

CurrencyDelegate

Custom delegate for currency values

DateDelegate

Custom delegate for date values

../_images/DateDelegate_unselected_disabled.png ../_images/DateDelegate_unselected_editable.png ../_images/DateDelegate_selected_disabled.png ../_images/DateDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a DateEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/DateEditor_disabled_tooltip.png
editable=True ../_images/DateEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/DateEditor_editable_tooltip.png
editable=False ../_images/DateEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/DateEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/DateEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

DateTimeDelegate

../_images/DateTimeDelegate_unselected_disabled.png ../_images/DateTimeDelegate_unselected_editable.png ../_images/DateTimeDelegate_selected_disabled.png ../_images/DateTimeDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a DateTimeEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/DateTimeEditor_disabled_tooltip.png
editable=True ../_images/DateTimeEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/DateTimeEditor_editable_tooltip.png
editable=False ../_images/DateTimeEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/DateTimeEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/DateTimeEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

EnumerationDelegate

Contrary to the comboboxdelegate, the enumeration delegate does not support dynamic
choices
../_images/EnumerationDelegate_unselected_disabled.png ../_images/EnumerationDelegate_unselected_editable.png ../_images/EnumerationDelegate_selected_disabled.png ../_images/EnumerationDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a ChoicesEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/ChoicesEditor_disabled_tooltip.png
editable=True ../_images/ChoicesEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/ChoicesEditor_editable_tooltip.png
editable=False ../_images/ChoicesEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/ChoicesEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/ChoicesEditor_editable_background_color.png

Static attributes supported by this editor :

  • nullable
  • field_name

Dynamic field attributes supported by the editor :

FileDelegate

Delegate for camelot.types.file fields. Expects values of type camelot.core.files.storage.StoredFile.

../_images/FileDelegate_unselected_disabled.png ../_images/FileDelegate_unselected_editable.png ../_images/FileDelegate_selected_disabled.png ../_images/FileDelegate_selected_editable.png

By default, creates a FileEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/FileEditor_disabled_tooltip.png
editable=True ../_images/FileEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/FileEditor_editable_tooltip.png
editable=False ../_images/FileEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/FileEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/FileEditor_editable_background_color.png

Static attributes supported by this editor :

  • storage
  • field_name
  • remove_original

Dynamic field attributes supported by the editor :

FloatDelegate

Custom delegate for float values

../_images/FloatDelegate_unselected_disabled.png ../_images/FloatDelegate_unselected_editable.png ../_images/FloatDelegate_selected_disabled.png ../_images/FloatDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a FloatEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/FloatEditor_disabled_tooltip.png
editable=True ../_images/FloatEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/FloatEditor_editable_tooltip.png
editable=False ../_images/FloatEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/FloatEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/FloatEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

ImageDelegate

../_images/image.png

IntegerDelegate

Custom delegate for integer values

../_images/IntegerDelegate_unselected_disabled.png ../_images/IntegerDelegate_unselected_editable.png ../_images/IntegerDelegate_selected_disabled.png ../_images/IntegerDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a IntegerEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/IntegerEditor_disabled_tooltip.png
editable=True ../_images/IntegerEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/IntegerEditor_editable_tooltip.png
editable=False ../_images/IntegerEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/IntegerEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/IntegerEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

IntervalsDelegate

Custom delegate for visualizing camelot.container.IntervalsContainer
data:
../_images/IntervalsDelegate_unselected_disabled.png ../_images/IntervalsDelegate_unselected_editable.png ../_images/IntervalsDelegate_selected_disabled.png ../_images/IntervalsDelegate_selected_editable.png

LabelDelegate

Delegate to display an attribute as a label

../_images/LabelDelegate_unselected_disabled.png ../_images/LabelDelegate_unselected_editable.png ../_images/LabelDelegate_selected_disabled.png ../_images/LabelDelegate_selected_editable.png

By default, creates a LabelEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/LabelEditor_disabled_tooltip.png
editable=True ../_images/LabelEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/LabelEditor_editable_tooltip.png
editable=False ../_images/LabelEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/LabelEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/LabelEditor_editable_background_color.png

Static attributes supported by this editor :

  • text
  • field_name

Dynamic field attributes supported by the editor :

LanguageDelegate

LocalFileDelegate

Delegate for displaying a path on the local file system. This path can
either point to a file or a directory
../_images/LocalFileDelegate_unselected_disabled.png ../_images/LocalFileDelegate_unselected_editable.png ../_images/LocalFileDelegate_selected_disabled.png ../_images/LocalFileDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a LocalFileEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/LocalFileEditor_disabled_tooltip.png
editable=True ../_images/LocalFileEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/LocalFileEditor_editable_tooltip.png
editable=False ../_images/LocalFileEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/LocalFileEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/LocalFileEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

Many2OneDelegate

Custom delegate for many 2 one relations

../_images/manytoone.png

Once an item has been selected, it is represented by its unicode representation in the editor or the table. So the related classes need an implementation of their __unicode__ method.

../_images/Many2OneDelegate_unselected_disabled.png ../_images/Many2OneDelegate_unselected_editable.png ../_images/Many2OneDelegate_selected_disabled.png ../_images/Many2OneDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a Many2OneEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/Many2OneEditor_disabled_tooltip.png
editable=True ../_images/Many2OneEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/Many2OneEditor_editable_tooltip.png
editable=False ../_images/Many2OneEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/Many2OneEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/Many2OneEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

ManyToManyDelegate

../_images/manytomany.png

ManyToOneChoicesDelegate

Display a ManyToOne field as a ComboBox, filling the list of choices with

the objects of the target class.

../_images/enumeration.png

The items in the ComboBox are the unicode representation of the related objects. So these classes need an implementation of their __unicode__ method to show up in a human readable way in the ComboBox.

MonthsDelegate

MonthsDelegate

custom delegate for showing and editing months and years
../_images/MonthsDelegate_unselected_disabled.png ../_images/MonthsDelegate_unselected_editable.png ../_images/MonthsDelegate_selected_disabled.png ../_images/MonthsDelegate_selected_editable.png

Field attributes supported by the delegate :

  • forever

By default, creates a MonthsEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/MonthsEditor_disabled_tooltip.png
editable=True ../_images/MonthsEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/MonthsEditor_editable_tooltip.png
editable=False ../_images/MonthsEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/MonthsEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/MonthsEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

NoteDelegate

../_images/NoteDelegate_unselected_disabled.png ../_images/NoteDelegate_unselected_editable.png ../_images/NoteDelegate_selected_disabled.png ../_images/NoteDelegate_selected_editable.png

By default, creates a NoteEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/NoteEditor_disabled_tooltip.png
editable=True ../_images/NoteEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/NoteEditor_editable_tooltip.png
editable=False ../_images/NoteEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/NoteEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/NoteEditor_editable_background_color.png

Static attributes supported by this editor :

  • field_name

Dynamic field attributes supported by the editor :

One2ManyDelegate

Custom delegate for many 2 one relations

../_images/onetomany.png
../_images/One2ManyDelegate_unselected_disabled.png ../_images/One2ManyDelegate_unselected_editable.png ../_images/One2ManyDelegate_selected_disabled.png ../_images/One2ManyDelegate_selected_editable.png

Field attributes supported by the delegate :

PlainTextDelegate

Custom delegate for simple string values

../_images/PlainTextDelegate_unselected_disabled.png ../_images/PlainTextDelegate_unselected_editable.png ../_images/PlainTextDelegate_selected_disabled.png ../_images/PlainTextDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a TextLineEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/TextLineEditor_disabled_tooltip.png
editable=True ../_images/TextLineEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/TextLineEditor_editable_tooltip.png
editable=False ../_images/TextLineEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/TextLineEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/TextLineEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

RichTextDelegate

Custom delegate for rich text (HTML) string values

../_images/RichTextDelegate_unselected_disabled.png ../_images/RichTextDelegate_unselected_editable.png ../_images/RichTextDelegate_selected_disabled.png ../_images/RichTextDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a RichTextEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/RichTextEditor_disabled_tooltip.png
editable=True ../_images/RichTextEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/RichTextEditor_editable_tooltip.png
editable=False ../_images/RichTextEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/RichTextEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/RichTextEditor_editable_background_color.png

Static attributes supported by this editor :

  • field_name

Dynamic field attributes supported by the editor :

SmileyDelegate

Delegate for Smiley’s

../_images/SmileyDelegate_unselected_disabled.png ../_images/SmileyDelegate_unselected_editable.png ../_images/SmileyDelegate_selected_disabled.png ../_images/SmileyDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a SmileyEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/SmileyEditor_disabled_tooltip.png
editable=True ../_images/SmileyEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/SmileyEditor_editable_tooltip.png
editable=False ../_images/SmileyEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/SmileyEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/SmileyEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

StarDelegate

Delegate for integer values from (1 to 5)(Rating Delegate)

../_images/StarDelegate_unselected_disabled.png ../_images/StarDelegate_unselected_editable.png ../_images/StarDelegate_selected_disabled.png ../_images/StarDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a StarEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/StarEditor_disabled_tooltip.png
editable=True ../_images/StarEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/StarEditor_editable_tooltip.png
editable=False ../_images/StarEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/StarEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/StarEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

TextBoolDelegate

TextEditDelegate

Custom delegate for simple string values

../_images/TextEditDelegate_unselected_disabled.png ../_images/TextEditDelegate_unselected_editable.png ../_images/TextEditDelegate_selected_disabled.png ../_images/TextEditDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a TextEditEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/TextEditEditor_disabled_tooltip.png
editable=True ../_images/TextEditEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/TextEditEditor_editable_tooltip.png
editable=False ../_images/TextEditEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/TextEditEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/TextEditEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

TimeDelegate

../_images/TimeDelegate_unselected_disabled.png ../_images/TimeDelegate_unselected_editable.png ../_images/TimeDelegate_selected_disabled.png ../_images/TimeDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a TimeEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/TimeEditor_disabled_tooltip.png
editable=True ../_images/TimeEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/TimeEditor_editable_tooltip.png
editable=False ../_images/TimeEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/TimeEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/TimeEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :

VirtualAddressDelegate

../_images/VirtualAddressDelegate_unselected_disabled.png ../_images/VirtualAddressDelegate_unselected_editable.png ../_images/VirtualAddressDelegate_selected_disabled.png ../_images/VirtualAddressDelegate_selected_editable.png

Field attributes supported by the delegate :

By default, creates a VirtualAddressEditor as its editor.

Field Attributes Editor
editable=False tooltip=’tooltip’ ../_images/VirtualAddressEditor_disabled_tooltip.png
editable=True ../_images/VirtualAddressEditor_editable.png
editable=True tooltip=’tooltip’ ../_images/VirtualAddressEditor_editable_tooltip.png
editable=False ../_images/VirtualAddressEditor_disabled.png
editable=False background_color=ColorScheme.green ../_images/VirtualAddressEditor_disabled_background_color.png
editable=True background_color=ColorScheme.green ../_images/VirtualAddressEditor_editable_background_color.png

Static attributes supported by this editor :

Dynamic field attributes supported by the editor :


Comments
blog comments powered by Disqus