diff options
Diffstat (limited to 'examples/declarative/textproperties')
-rw-r--r-- | examples/declarative/textproperties/main.py | 24 | ||||
-rw-r--r-- | examples/declarative/textproperties/view.qml | 52 |
2 files changed, 41 insertions, 35 deletions
diff --git a/examples/declarative/textproperties/main.py b/examples/declarative/textproperties/main.py index 48a3f1d91..0408313d3 100644 --- a/examples/declarative/textproperties/main.py +++ b/examples/declarative/textproperties/main.py @@ -1,6 +1,6 @@ ############################################################################# ## -## Copyright (C) 2018 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. @@ -39,14 +39,21 @@ ############################################################################# import sys -from os.path import abspath, dirname, join +from pathlib import Path from PySide6.QtCore import QObject, Slot from PySide6.QtGui import QGuiApplication -from PySide6.QtQml import QQmlApplicationEngine +from PySide6.QtQml import QQmlApplicationEngine, QmlElement from PySide6.QtQuickControls2 import QQuickStyle +# To be used on the @QmlElement decorator +# (QML_IMPORT_MINOR_VERSION is optional) +QML_IMPORT_NAME = "io.qt.textproperties" +QML_IMPORT_MAJOR_VERSION = 1 + + +@QmlElement class Bridge(QObject): @Slot(str, result=str) @@ -95,17 +102,10 @@ if __name__ == '__main__': QQuickStyle.setStyle("Material") engine = QQmlApplicationEngine() - # Instance of the Python object - bridge = Bridge() - - # Expose the Python object to QML - context = engine.rootContext() - context.setContextProperty("con", bridge) - # Get the path of the current directory, and then add the name # of the QML file, to load it. - qmlFile = join(dirname(__file__), 'view.qml') - engine.load(abspath(qmlFile)) + qml_file = Path(__file__).parent / 'view.qml' + engine.load(qml_file) if not engine.rootObjects(): sys.exit(-1) diff --git a/examples/declarative/textproperties/view.qml b/examples/declarative/textproperties/view.qml index 98289a1ba..cb7992e45 100644 --- a/examples/declarative/textproperties/view.qml +++ b/examples/declarative/textproperties/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 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. @@ -39,11 +39,13 @@ ****************************************************************************/ -import QtQuick 2.0 -import QtQuick.Layouts 1.11 -import QtQuick.Controls 2.1 -import QtQuick.Window 2.1 -import QtQuick.Controls.Material 2.1 +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Window +import QtQuick.Controls.Material + +import io.qt.textproperties 1.0 ApplicationWindow { id: page @@ -53,6 +55,10 @@ ApplicationWindow { Material.theme: Material.Dark Material.accent: Material.Red + Bridge { + id: bridge + } + GridLayout { id: grid columns: 2 @@ -78,9 +84,9 @@ ApplicationWindow { Layout.alignment: Qt.AlignLeft text: "Italic" onToggled: { - leftlabel.font.italic = con.getItalic(italic.text) - leftlabel.font.bold = con.getBold(italic.text) - leftlabel.font.underline = con.getUnderline(italic.text) + leftlabel.font.italic = bridge.getItalic(italic.text) + leftlabel.font.bold = bridge.getBold(italic.text) + leftlabel.font.underline = bridge.getUnderline(italic.text) } } @@ -89,9 +95,9 @@ ApplicationWindow { Layout.alignment: Qt.AlignLeft text: "Bold" onToggled: { - leftlabel.font.italic = con.getItalic(bold.text) - leftlabel.font.bold = con.getBold(bold.text) - leftlabel.font.underline = con.getUnderline(bold.text) + leftlabel.font.italic = bridge.getItalic(bold.text) + leftlabel.font.bold = bridge.getBold(bold.text) + leftlabel.font.underline = bridge.getUnderline(bold.text) } } RadioButton { @@ -99,9 +105,9 @@ ApplicationWindow { Layout.alignment: Qt.AlignLeft text: "Underline" onToggled: { - leftlabel.font.italic = con.getItalic(underline.text) - leftlabel.font.bold = con.getBold(underline.text) - leftlabel.font.underline = con.getUnderline(underline.text) + leftlabel.font.italic = bridge.getItalic(underline.text) + leftlabel.font.bold = bridge.getBold(underline.text) + leftlabel.font.underline = bridge.getUnderline(underline.text) } } RadioButton { @@ -110,9 +116,9 @@ ApplicationWindow { text: "None" checked: true onToggled: { - leftlabel.font.italic = con.getItalic(noneradio.text) - leftlabel.font.bold = con.getBold(noneradio.text) - leftlabel.font.underline = con.getUnderline(noneradio.text) + leftlabel.font.italic = bridge.getItalic(noneradio.text) + leftlabel.font.bold = bridge.getBold(noneradio.text) + leftlabel.font.underline = bridge.getUnderline(noneradio.text) } } } @@ -135,7 +141,7 @@ ApplicationWindow { highlighted: true Material.accent: Material.Red onClicked: { - leftlabel.color = con.getColor(red.text) + leftlabel.color = bridge.getColor(red.text) } } Button { @@ -144,7 +150,7 @@ ApplicationWindow { highlighted: true Material.accent: Material.Green onClicked: { - leftlabel.color = con.getColor(green.text) + leftlabel.color = bridge.getColor(green.text) } } Button { @@ -153,7 +159,7 @@ ApplicationWindow { highlighted: true Material.accent: Material.Blue onClicked: { - leftlabel.color = con.getColor(blue.text) + leftlabel.color = bridge.getColor(blue.text) } } Button { @@ -162,7 +168,7 @@ ApplicationWindow { highlighted: true Material.accent: Material.BlueGrey onClicked: { - leftlabel.color = con.getColor(nonebutton.text) + leftlabel.color = bridge.getColor(nonebutton.text) } } } @@ -182,7 +188,7 @@ ApplicationWindow { id: slider value: 0.5 onValueChanged: { - leftlabel.font.pointSize = con.getSize(value) + leftlabel.font.pointSize = bridge.getSize(value) } } } |