Re: Use pyqtProperty on QObject instance
Patrick Stinson <[email protected]>
| Newsgroups | gmane.comp.python.pyqt-pykde |
|---|---|
| Message-ID | <[email protected]> |
So they are. I wonder if this can be done with attached properties. > On May 27, 2019, at 9:59 AM, Phil Thompson <[email protected]> wrote: > >> On 27/05/2019 17:41, Patrick Stinson wrote: >> Ok, that answers my question. I will figure out a way to add the >> properties to the class the first time they are added to one of the >> instances. They are always the same, after all. > > Properties (like signals) are part of the class *definition* (as far as Qt is concerned). You can't add them dynamically. > > Phil > >>>> On May 27, 2019, at 9:11 AM, Phil Thompson <[email protected]> wrote: >>>> On 27/05/2019 16:33, Patrick Stinson wrote: >>>> I have a custom object property system that adds properties to QObject >>>> instances and am trying to expose those [dynamic] properties to qml. >>>> Is it possible to add a qt property to a QObject instance, as opposed >>>> to adding it using pyqtProperty as a decorator in the class >>>> declaration? >>>> The PyQt5 docs say that you can use pyqtProperty in the same way as >>>> the python property() function apart from the decorator, but I haven’t >>>> had much success with this: >>>> def test_property(): >>>> class A(QObject): >>>> def __init__(self): >>>> self._mine = 12 >>>> self.mine = pyqtProperty(int, self.get_mine, self.set_mine) >>>> def get_mine(self): >>>> return self._mine >>>> def set_mine(self, x): >>>> self._mine = x >>>> a = A() >>>> print(a.mine) >>>> print(a.mine()) >>>> turin:pkdiagram patrick$ python test.py >>>> <PyQt5.QtCore.pyqtProperty object at 0x114ea1840> >>>> Traceback (most recent call last): >>>> File "test.py", line 743, in <module> >>>> test_property() >>>> File "test.py", line 740, in test_property >>>> print(a.mine()) >>>> TypeError: Required argument 'fget' (pos 1) not found >>>> turin:pkdiagram patrick$ >>> Properties are class objects not instance objects. >>> Phil > _______________________________________________ PyQt mailing list [email protected] https://www.riverbankcomputing.com/mailman/listinfo/pyqt