David Boddie wrote: > > It should be OK - it shouldn't crash, anyway. It depends on the view > doing the right thing when it finds that it hasn't received an editor > widget. > > You could create an empty placeholder widget in the createEditor() > method, call QColorDialog.getColor() with the existing color from the > model in setEditorData(), record the color returned by the dialog in > some internal instance variable, and finally set the data in the model > when setModelData() is called: > > class ColorProperty(Property): > ... > def createEditor(self, parent, option, index): > return QtGui.QWidget(parent) > def setEditorData(self, editor, index): > self.color = QtGui.QColorDialog.getColor( > index.model().getObjectData(self.name())) > def setModelData(self, editor, model, index): > if self.color.isValid(): > index.model().setObjectData(self.name(), self.color)
thanks for tip, i'll check it how it works. > ... > > I find it strange that you have to triple-click to edit any of the > items in your example. Do you see the same behaviour? oh, this is default Qt behavoiur: first click selects row, second select editor (for ColorProperty, IntProperty & StringProperty you can now change the value) but third click is required only for properties w/ QCombobox editor (EnumProperty & BooleanProperty) ... skink > > David > -- http://mail.python.org/mailman/listinfo/python-list