diff options
Diffstat (limited to 'examples/declarative/signals')
-rw-r--r-- | examples/declarative/signals/pytoqml1/view.qml | 2 | ||||
-rw-r--r-- | examples/declarative/signals/pytoqml2/main.py | 11 | ||||
-rw-r--r-- | examples/declarative/signals/pytoqml2/view.qml | 5 | ||||
-rw-r--r-- | examples/declarative/signals/qmltopy1/main.py | 15 | ||||
-rw-r--r-- | examples/declarative/signals/qmltopy1/view.qml | 18 | ||||
-rw-r--r-- | examples/declarative/signals/qmltopy2/main.py | 13 | ||||
-rw-r--r-- | examples/declarative/signals/qmltopy2/view.qml | 8 |
7 files changed, 49 insertions, 23 deletions
diff --git a/examples/declarative/signals/pytoqml1/view.qml b/examples/declarative/signals/pytoqml1/view.qml index a35b4866a..aebf8432b 100644 --- a/examples/declarative/signals/pytoqml1/view.qml +++ b/examples/declarative/signals/pytoqml1/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt for Python examples of the Qt Toolkit. diff --git a/examples/declarative/signals/pytoqml2/main.py b/examples/declarative/signals/pytoqml2/main.py index 30ec5a4f6..31e860dc1 100644 --- a/examples/declarative/signals/pytoqml2/main.py +++ b/examples/declarative/signals/pytoqml2/main.py @@ -45,8 +45,16 @@ import sys from PySide6.QtCore import QObject, QTimer, QUrl, Signal, Slot from PySide6.QtGui import QGuiApplication from PySide6.QtQuick import QQuickView +from PySide6.QtQml import QmlElement +# To be used on the @QmlElement decorator +# (QML_IMPORT_MINOR_VERSION is optional) +QML_IMPORT_NAME = "examples.signals.pytoqml2" +QML_IMPORT_MAJOR_VERSION = 1 + + +@QmlElement class RotateValue(QObject): valueChanged = Signal(int, arguments=['val']) @@ -67,8 +75,7 @@ if __name__ == '__main__': rotatevalue = RotateValue() timer = QTimer() timer.start(2000) - context = view.rootContext() - context.setContextProperty("rotatevalue", rotatevalue) + view.setInitialProperties({"rotatevalue": rotatevalue}) qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml') view.setSource(QUrl.fromLocalFile(qml_file)) diff --git a/examples/declarative/signals/pytoqml2/view.qml b/examples/declarative/signals/pytoqml2/view.qml index 41b185af0..ca2fb46f0 100644 --- a/examples/declarative/signals/pytoqml2/view.qml +++ b/examples/declarative/signals/pytoqml2/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt for Python examples of the Qt Toolkit. @@ -41,11 +41,14 @@ import QtQuick 2.0 import QtQml 2.0 +import examples.signals.pytoqml2 1.0 + Rectangle { id: page width: 500; height: 200 color: "lightgray" + required property RotateValue rotatevalue Text { id: helloText diff --git a/examples/declarative/signals/qmltopy1/main.py b/examples/declarative/signals/qmltopy1/main.py index d323d9a0f..b84d98a71 100644 --- a/examples/declarative/signals/qmltopy1/main.py +++ b/examples/declarative/signals/qmltopy1/main.py @@ -45,8 +45,16 @@ import sys from PySide6.QtCore import QObject, QUrl, Slot from PySide6.QtGui import QGuiApplication from PySide6.QtQuick import QQuickView +from PySide6.QtQml import QmlElement +# To be used on the @QmlElement decorator +# (QML_IMPORT_MINOR_VERSION is optional) +QML_IMPORT_NAME = "examples.signals.qmltopy1" +QML_IMPORT_MAJOR_VERSION = 1 + + +@QmlElement class Console(QObject): """Output stuff on the console.""" @@ -68,13 +76,6 @@ if __name__ == '__main__': app = QGuiApplication(sys.argv) view = QQuickView() - # Instantiate the Python object. - con = Console() - - # Expose the object to QML. - context = view.rootContext() - context.setContextProperty("con", con) - qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml') view.setSource(QUrl.fromLocalFile(qml_file)) if view.status() == QQuickView.Error: diff --git a/examples/declarative/signals/qmltopy1/view.qml b/examples/declarative/signals/qmltopy1/view.qml index 32a66eff4..ec8b3452c 100644 --- a/examples/declarative/signals/qmltopy1/view.qml +++ b/examples/declarative/signals/qmltopy1/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt for Python examples of the Qt Toolkit. @@ -41,12 +41,18 @@ import QtQuick 2.0 +import examples.signals.qmltopy1 1.0 + Rectangle { id: page width: 500; height: 200 color: "lightgray" + Console { + id: pyConsole + } + Text { id: helloText text: "Hello world!" @@ -66,12 +72,12 @@ Rectangle { objectName: "buttonMouseArea" anchors.fill: parent onClicked: { - // once the "con" context has been declared, + // once the "console" context has been declared, // slots can be called like functions - con.outputFloat(123) - con.outputStr("foobar") - con.output(helloText.x) - con.output(helloText.text) + pyConsole.outputFloat(123) + pyConsole.outputStr("foobar") + pyConsole.output(helloText.x) + pyConsole.output(helloText.text) } } Text { diff --git a/examples/declarative/signals/qmltopy2/main.py b/examples/declarative/signals/qmltopy2/main.py index 1bf22b2af..21addc13b 100644 --- a/examples/declarative/signals/qmltopy2/main.py +++ b/examples/declarative/signals/qmltopy2/main.py @@ -1,7 +1,7 @@ ############################################################################# ## -## Copyright (C) 2016 The Qt Company Ltd. +## Copyright (C) 2021 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the Qt for Python examples of the Qt Toolkit. @@ -45,8 +45,15 @@ import sys from PySide6.QtCore import QObject, QUrl, Slot from PySide6.QtGui import QGuiApplication from PySide6.QtQuick import QQuickView +from PySide6.QtQml import QmlElement +# To be used on the @QmlElement decorator +# (QML_IMPORT_MINOR_VERSION is optional) +QML_IMPORT_NAME = "examples.signals.qmltopy2" +QML_IMPORT_MAJOR_VERSION = 1 + +@QmlElement class RotateValue(QObject): def __init__(self): super().__init__() @@ -64,10 +71,6 @@ if __name__ == '__main__': app = QGuiApplication(sys.argv) view = QQuickView() - rotatevalue = RotateValue() - context = view.rootContext() - context.setContextProperty("rotatevalue", rotatevalue) - qml_file = os.fspath(Path(__file__).resolve().parent / 'view.qml') view.setSource(QUrl.fromLocalFile(qml_file)) if view.status() == QQuickView.Error: diff --git a/examples/declarative/signals/qmltopy2/view.qml b/examples/declarative/signals/qmltopy2/view.qml index 6fe6087f2..b8cb23cc2 100644 --- a/examples/declarative/signals/qmltopy2/view.qml +++ b/examples/declarative/signals/qmltopy2/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt for Python examples of the Qt Toolkit. @@ -40,12 +40,18 @@ import QtQuick 2.0 +import examples.signals.qmltopy2 1.0 + Rectangle { id: page width: 500; height: 200 color: "lightgray" + RotateValue { + id: rotatevalue + } + Text { id: helloText text: "Hello world!" |