diff options
Diffstat (limited to 'examples/declarative/referenceexamples/valuesource')
7 files changed, 0 insertions, 270 deletions
diff --git a/examples/declarative/referenceexamples/valuesource/birthdayparty.py b/examples/declarative/referenceexamples/valuesource/birthdayparty.py deleted file mode 100644 index 3bc75e819..000000000 --- a/examples/declarative/referenceexamples/valuesource/birthdayparty.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -from PySide6.QtCore import QDate, QObject, ClassInfo, Property, QTime, Signal -from PySide6.QtQml import QmlAnonymous, QmlAttached, QmlElement, ListProperty - -from person import Person - - -# To be used on the @QmlElement decorator -# (QML_IMPORT_MINOR_VERSION is optional) -QML_IMPORT_NAME = "examples.valuesource.people" -QML_IMPORT_MAJOR_VERSION = 1 - - -@QmlAnonymous -class BirthdayPartyAttached(QObject): - - def __init__(self, parent=None): - super().__init__(parent) - self._rsvp = QDate() - - @Property(QDate) - def rsvp(self): - return self._rsvp - - @rsvp.setter - def rsvp(self, d): - self._rsvp = d - - -@QmlElement -@ClassInfo(DefaultProperty="guests") -@QmlAttached(BirthdayPartyAttached) -class BirthdayParty(QObject): - - partyStarted = Signal(QTime) - - def __init__(self, parent=None): - super().__init__(parent) - self._host = None - self._guests = [] - - def startParty(self): - self.partyStarted.emit(QTime.currentTime()) - - @Property(Person) - def host(self): - return self._host - - @host.setter - def host(self, h): - self._host = h - - @Property(str) - def announcement(self): - return "" - - @announcement.setter - def announcement(self, a): - print(a) - - def guest(self, n): - return self._guests[n] - - def guestCount(self): - return len(self._guests) - - def appendGuest(self, guest): - self._guests.append(guest) - - @staticmethod - def qmlAttachedProperties(self, o): - return BirthdayPartyAttached(o) - - guests = ListProperty(Person, appendGuest) diff --git a/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst b/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst deleted file mode 100644 index 81fbc827f..000000000 --- a/examples/declarative/referenceexamples/valuesource/doc/valuesource.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. _qml-valuesource-example: - -Extending QML - Value Source Example -==================================== - -This example builds on the :ref:`qml-adding-types-example`, -the :ref:`qml-attached-properties-example`, -the :ref:`qml-default-property-example`, -the :ref:`qml-inheritance-and-coercion-example` and -the :ref:`qml-object-and-list-property-types-example`. - -It demonstrates implementing a -`property value source <https://doc.qt.io/qt-6/qtqml-cppintegration-definetypes.html#property-value-sources>`_ -in Python. - -Running the Example -------------------- - -The main.py file in the example includes a simple shell application that -loads and runs the QML snippet shown below. diff --git a/examples/declarative/referenceexamples/valuesource/example.qml b/examples/declarative/referenceexamples/valuesource/example.qml deleted file mode 100644 index cb9683f3a..000000000 --- a/examples/declarative/referenceexamples/valuesource/example.qml +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (C) 2022 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -import examples.valuesource.people - -BirthdayParty { - HappyBirthdaySong on announcement { name: "Bob Jones" } - - onPartyStarted: (time) => { console.log("This party started rockin' at " + time); } - - host: Boy { - name: "Bob Jones" - shoe_size: 12 - } - - Boy { - name: "Leo Hodges" - BirthdayParty.rsvp: "2009-07-06" - } - Boy { - name: "Jack Smith" - } - Girl { - name: "Anne Brown" - BirthdayParty.rsvp: "2009-07-01" - } -} diff --git a/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py b/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py deleted file mode 100644 index cffddd39e..000000000 --- a/examples/declarative/referenceexamples/valuesource/happybirthdaysong.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -from PySide6.QtCore import QObject, QTimer, Property, Slot -from PySide6.QtQml import QmlElement, QPyQmlPropertyValueSource - -# To be used on the @QmlElement decorator -# (QML_IMPORT_MINOR_VERSION is optional) -QML_IMPORT_NAME = "examples.valuesource.people" -QML_IMPORT_MAJOR_VERSION = 1 - - -@QmlElement -class HappyBirthdaySong(QPyQmlPropertyValueSource): - - def __init__(self, parent=None): - super().__init__(parent) - - self.m_target = None - self.m_name = "" - self.m_line = -1 - self.m_lyrics = [] - - self.m_timer = QTimer(self) - self.m_timer.timeout.connect(self.advance) - self.m_timer.start(1000) - - def setTarget(self, property): - self.m_target = property - - @Property(str) - def name(self): - return self.m_name - - @name.setter - def name(self, n): - self.m_name = n - self.m_lyrics = ["Happy birthday to you,", - "Happy birthday to you,", - f"Happy birthday dear {self.m_name},", - "Happy birthday to you!", - ""] - - @Slot() - def advance(self): - self.m_line = (self.m_line + 1) % len(self.m_lyrics) - self.m_target.write(self.m_lyrics[self.m_line]) diff --git a/examples/declarative/referenceexamples/valuesource/main.py b/examples/declarative/referenceexamples/valuesource/main.py deleted file mode 100644 index c3ded4be9..000000000 --- a/examples/declarative/referenceexamples/valuesource/main.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -"""PySide6 port of the qml/examples/qml/referenceexamples/valuesource example from Qt v6.x""" - -from pathlib import Path -import sys - -from PySide6.QtCore import QCoreApplication, QUrl -from PySide6.QtQml import QQmlComponent, QQmlEngine, qmlAttachedPropertiesObject - -from person import Boy, Girl -from birthdayparty import BirthdayParty -from happybirthdaysong import HappyBirthdaySong - - -app = QCoreApplication(sys.argv) -qml_file = Path(__file__).parent / "example.qml" -url = QUrl.fromLocalFile(qml_file) -engine = QQmlEngine() -component = QQmlComponent(engine, url) -party = component.create() -if not party: - print(component.errors()) - del engine - sys.exit(-1) -host = party.host -print(f"{host.name} is having a birthday!") -if isinstance(host, Boy): - print("He is inviting:") -else: - print("She is inviting:") -for g in range(party.guestCount()): - guest = party.guest(g) - name = guest.name - - rsvp_date = None - attached = qmlAttachedPropertiesObject(BirthdayParty, guest, False) - if attached: - rsvp_date = attached.rsvp.toString() - if rsvp_date: - print(f" {name} RSVP date: {rsvp_date}") - else: - print(f" {name} RSVP date: Hasn't RSVP'd") - -party.startParty() - -r = app.exec() - -del engine -sys.exit(r) diff --git a/examples/declarative/referenceexamples/valuesource/person.py b/examples/declarative/referenceexamples/valuesource/person.py deleted file mode 100644 index 5cd04e38a..000000000 --- a/examples/declarative/referenceexamples/valuesource/person.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -from PySide6.QtCore import QObject, Property -from PySide6.QtQml import QmlAnonymous, QmlElement - -# To be used on the @QmlElement decorator -# (QML_IMPORT_MINOR_VERSION is optional) -QML_IMPORT_NAME = "examples.valuesource.people" -QML_IMPORT_MAJOR_VERSION = 1 - - -@QmlAnonymous -class Person(QObject): - def __init__(self, parent=None): - super().__init__(parent) - self._name = '' - self._shoe_size = 0 - - @Property(str) - def name(self): - return self._name - - @name.setter - def name(self, n): - self._name = n - - @Property(int) - def shoe_size(self): - return self._shoe_size - - @shoe_size.setter - def shoe_size(self, s): - self._shoe_size = s - - -@QmlElement -class Boy(Person): - def __init__(self, parent=None): - super().__init__(parent) - - -@QmlElement -class Girl(Person): - def __init__(self, parent=None): - super().__init__(parent) diff --git a/examples/declarative/referenceexamples/valuesource/valuesource.pyproject b/examples/declarative/referenceexamples/valuesource/valuesource.pyproject deleted file mode 100644 index a782d5c8a..000000000 --- a/examples/declarative/referenceexamples/valuesource/valuesource.pyproject +++ /dev/null @@ -1,3 +0,0 @@ -{ - "files": ["main.py", "birthdayparty.py", "happybirthdaysong.py", "person.py", "example.qml"] -} |