[PyQt] Re: Add "user" property to a widget
Alberto Berti
alberto at metapensiero.it
Wed Sep 10 10:58:22 BST 2008
>>>>> "Arve" == Arve Knudsen <arve.knudsen at gmail.com> writes:
Arve> I need to have a "user" property for a widget, so it can be
Arve> fetched via its metaObject().userProperty(). This is
Arve> required since the convention in Qt is to designate a "user"
Arve> property of a widget for editing purposes (e.g., text() for
Arve> QLineEdit). Now that I've explained my use case, how can I
Arve> can define such a property in PyQt :)
I know only QDataWidgetMapper that looks for the user prop but just
when the property name isn't specified in the binding operation.
However, i think since pyqt 4.4.4, the pyqtproperty decorator has a
parameter for it:
>>> from PyQt4.QtCore import pyqtProperty
>>> help(pyqtProperty)
Help on class pyqtProperty in module PyQt4.QtCore:
class pyqtProperty(__builtin__.property)
| pyqtProperty(type, fget=None, fset=None, freset=None, fdel=None, doc=None
| designable=True, scriptable=True, stored=True, user=False)
| -> property attribute
|
| type is the name of a C++ type that be passed to QVariant.nameToType().
| freset is a function for resetting an attribute to its default value.
| designable sets the DESIGNABLE flag (the default is True for writable
| properties and False otherwise).
| scriptable sets the SCRIPTABLE flag.
| stored sets the STORED flag.
| user sets the USER flag.
| The other parameters are the same as those required by the standard Python
| property type. Properties defined using pyqtProperty behave as both Python
| and Qt properties.
More information about the PyQt
mailing list