aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/textproperties
diff options
context:
space:
mode:
authorCristián Maureira-Fredes <cmaureirafredes@gmail.com>2021-06-28 16:42:55 +0200
committerCristián Maureira-Fredes <Cristian.Maureira-Fredes@qt.io>2021-07-21 10:01:45 +0200
commitc9330b0acf680d4c2a0933b8bf67dc9b3114de5d (patch)
treef58d82c3ce57f04960e39f3af596e5a010f21a7f /examples/declarative/textproperties
parentb1b2cc2ebed2fcf6e31c1fbbdd3638216e34717b (diff)
qml: replace context properties and code updates
Most of the qml code in the repository was outdated, and followed bad practices, like context properties. Complementary, after the major updates for Qt6 most of the code was not relying on the new ways of register types (singletons, and using the decorator QmlElement). Drop the context property usage in the following examples: - signals/qmltopy1 - signals/qmltopy2 - signals/pytoqml2 - usingmodel - quickcontrols2/gallery - textproperties Additionally: - all the tests related to context properties - tutorials/qmlapp - tutorials/qmlsqlintegration - Removing 'scrolling' example - Fixing some flake8 warnings Change-Id: I649248c0149876bf2bf94e78e27cef7110f42f1d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Keith Kyzivat <keith.kyzivat@qt.io>
Diffstat (limited to 'examples/declarative/textproperties')
-rw-r--r--examples/declarative/textproperties/main.py24
-rw-r--r--examples/declarative/textproperties/view.qml52
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)
}
}
}