diff options
Diffstat (limited to 'examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py')
| -rw-r--r-- | examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py index 52af2fe97..eacb5201d 100644 --- a/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py +++ b/examples/qml/tutorials/extending-qml-advanced/advanced6-Property-value-source/birthdayparty.py @@ -15,18 +15,21 @@ QML_IMPORT_MAJOR_VERSION = 1 @QmlAnonymous class BirthdayPartyAttached(QObject): + rsvp_changed = Signal() def __init__(self, parent=None): super().__init__(parent) self._rsvp = QDate() - @Property(QDate) + @Property(QDate, notify=rsvp_changed, final=True) def rsvp(self): return self._rsvp @rsvp.setter def rsvp(self, d): - self._rsvp = d + if self._rsvp != d: + self._rsvp = d + self.rsvp_changed.emit() @QmlElement @@ -34,30 +37,39 @@ class BirthdayPartyAttached(QObject): @QmlAttached(BirthdayPartyAttached) class BirthdayParty(QObject): + announcement_changed = Signal() + host_changed = Signal() + guests_changed = Signal() partyStarted = Signal(QTime) def __init__(self, parent=None): super().__init__(parent) + self._announcement = "" self._host = None self._guests = [] def startParty(self): self.partyStarted.emit(QTime.currentTime()) - @Property(Person) + @Property(Person, notify=host_changed, final=True) def host(self): return self._host @host.setter def host(self, h): - self._host = h + if self._host != h: + self._host = h + self.host_changed.emit() - @Property(str) + @Property(str, notify=announcement_changed, final=True) def announcement(self): - return "" + return self._announcement @announcement.setter def announcement(self, a): + if self._announcement != a: + self._announcement = a + self.announcement_changed.emit() print(a) def guest(self, n): @@ -68,9 +80,10 @@ class BirthdayParty(QObject): def appendGuest(self, guest): self._guests.append(guest) + self.guests_changed.emit() @staticmethod def qmlAttachedProperties(self, o): return BirthdayPartyAttached(o) - guests = ListProperty(Person, appendGuest) + guests = ListProperty(Person, appendGuest, notify=guests_changed, final=True) |
