aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/window
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative/window')
-rw-r--r--examples/declarative/window/AllScreens.qml79
-rw-r--r--examples/declarative/window/CurrentScreen.qml120
-rw-r--r--examples/declarative/window/Splash.qml79
-rw-r--r--examples/declarative/window/doc/window.pngbin0 -> 9863 bytes
-rw-r--r--examples/declarative/window/doc/window.rst35
-rw-r--r--examples/declarative/window/main.py74
-rw-r--r--examples/declarative/window/resources/icon.icnsbin0 -> 59662 bytes
-rw-r--r--examples/declarative/window/resources/icon.icobin0 -> 11825 bytes
-rw-r--r--examples/declarative/window/resources/icon.svg208
-rw-r--r--examples/declarative/window/resources/icon64.pngbin0 -> 3004 bytes
-rw-r--r--examples/declarative/window/window.pyproject3
-rw-r--r--examples/declarative/window/window.qml188
-rw-r--r--examples/declarative/window/window.qrc8
-rw-r--r--examples/declarative/window/window_rc.py328
14 files changed, 1122 insertions, 0 deletions
diff --git a/examples/declarative/window/AllScreens.qml b/examples/declarative/window/AllScreens.qml
new file mode 100644
index 000000000..6ce06db58
--- /dev/null
+++ b/examples/declarative/window/AllScreens.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt for Python examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+
+Column {
+ id: root
+ spacing: 8
+
+ Label {
+ text: "Total number of screens: " + screenInfo.count
+ font.bold: true
+ }
+
+ Flow {
+ spacing: 12
+ width: parent.width
+
+ Repeater {
+ id: screenInfo
+ model: (Qt.application as Application).screens
+ Label {
+ required property string name
+ required property int virtualX
+ required property int virtualY
+ required property var modelData // avoid shadowing Label.width and height
+
+ lineHeight: 1.5
+ text: name + "\n" + virtualX + ", " + virtualY + " " + modelData.width + "x" + modelData.height
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ var screens = (Qt.application as Application).screens;
+ for (var i = 0; i < screens.length; ++i)
+ console.log("screen " + screens[i].name + " has geometry " +
+ screens[i].virtualX + ", " + screens[i].virtualY + " " +
+ screens[i].width + "x" + screens[i].height)
+ }
+}
diff --git a/examples/declarative/window/CurrentScreen.qml b/examples/declarative/window/CurrentScreen.qml
new file mode 100644
index 000000000..d0f7245ef
--- /dev/null
+++ b/examples/declarative/window/CurrentScreen.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt for Python examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+
+Item {
+ id: root
+ width: 400
+ height: propertyGrid.implicitHeight + 16
+
+ function orientationToString(o) {
+ switch (o) {
+ case Qt.PrimaryOrientation:
+ return "primary";
+ case Qt.PortraitOrientation:
+ return "portrait";
+ case Qt.LandscapeOrientation:
+ return "landscape";
+ case Qt.InvertedPortraitOrientation:
+ return "inverted portrait";
+ case Qt.InvertedLandscapeOrientation:
+ return "inverted landscape";
+ }
+ return "unknown";
+ }
+
+ Grid {
+ id: propertyGrid
+ columns: 2
+ spacing: 8
+ x: spacing
+ y: spacing
+
+ //! [screen]
+ Label {
+ text: "Screen \"" + Screen.name + "\":"
+ font.bold: true
+ }
+ Item { width: 1; height: 1 } // spacer
+
+ Label { text: "manufacturer" }
+ Label { text: Screen.manufacturer ? Screen.manufacturer : "unknown" }
+
+ Label { text: "model" }
+ Label { text: Screen.model ? Screen.model : "unknown" }
+
+ Label { text: "serial number" }
+ Label { text: Screen.serialNumber ? Screen.serialNumber : "unknown" }
+
+ Label { text: "dimensions" }
+ Label { text: Screen.width + "x" + Screen.height }
+
+ Label { text: "pixel density" }
+ Label { text: Screen.pixelDensity.toFixed(2) + " dots/mm (" + (Screen.pixelDensity * 25.4).toFixed(2) + " dots/inch)" }
+
+ Label { text: "logical pixel density" }
+ Label { text: Screen.logicalPixelDensity.toFixed(2) + " dots/mm (" + (Screen.logicalPixelDensity * 25.4).toFixed(2) + " dots/inch)" }
+
+ Label { text: "device pixel ratio" }
+ Label { text: Screen.devicePixelRatio.toFixed(2) }
+
+ Label { text: "available virtual desktop" }
+ Label { text: Screen.desktopAvailableWidth + "x" + Screen.desktopAvailableHeight }
+
+ Label { text: "position in virtual desktop" }
+ Label { text: Screen.virtualX + ", " + Screen.virtualY }
+
+ Label { text: "orientation" }
+ Label { text: root.orientationToString(Screen.orientation) + " (" + Screen.orientation + ")" }
+
+ Label { text: "primary orientation" }
+ Label { text: root.orientationToString(Screen.primaryOrientation) + " (" + Screen.primaryOrientation + ")" }
+ //! [screen]
+
+ Label { text: "10mm rectangle" }
+ Rectangle {
+ color: "red"
+ width: Screen.pixelDensity * 10
+ height: width
+ }
+ }
+}
diff --git a/examples/declarative/window/Splash.qml b/examples/declarative/window/Splash.qml
new file mode 100644
index 000000000..41c82c0c7
--- /dev/null
+++ b/examples/declarative/window/Splash.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt for Python examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick
+import shared
+
+//! [splash-properties]
+Window {
+ id: splash
+ color: "transparent"
+ title: "Splash Window"
+ modality: Qt.ApplicationModal
+ flags: Qt.SplashScreen
+ property int timeoutInterval: 2000
+ signal timeout
+//! [splash-properties]
+//! [screen-properties]
+ x: (Screen.width - splashImage.width) / 2
+ y: (Screen.height - splashImage.height) / 2
+//! [screen-properties]
+ width: splashImage.width
+ height: splashImage.height
+
+ Image {
+ id: splashImage
+ source: Images.qtLogo
+ MouseArea {
+ anchors.fill: parent
+ onClicked: Qt.quit()
+ }
+ }
+ //! [timer]
+ Timer {
+ interval: splash.timeoutInterval; running: true; repeat: false
+ onTriggered: {
+ splash.visible = false
+ splash.timeout()
+ }
+ }
+ //! [timer]
+ Component.onCompleted: visible = true
+}
diff --git a/examples/declarative/window/doc/window.png b/examples/declarative/window/doc/window.png
new file mode 100644
index 000000000..72487b4d9
--- /dev/null
+++ b/examples/declarative/window/doc/window.png
Binary files differ
diff --git a/examples/declarative/window/doc/window.rst b/examples/declarative/window/doc/window.rst
new file mode 100644
index 000000000..8736bb629
--- /dev/null
+++ b/examples/declarative/window/doc/window.rst
@@ -0,0 +1,35 @@
+Qt Quick Examples - Window and Screen
+=====================================
+
+This example demonstrates the Window and Screen types in QML.
+
+.. image:: window.png
+ :width: 392
+ :alt: Window and Screen screenshot
+
+In addition, this example demonstrates the usage of the Qt Resource System in
+Qt for Python for more advanced scenarios. There are several QML files, one of
+which imports a module from this sibling directory. Both this "shared" module
+and the QML files of the example need to be compiled into Python modules with
+the resource compiler rcc.
+
+For the "shared" module approach to work with QML and rcc, you need:
+
+* A module definition *qmldir* file
+* A Qt Resource Collection file (.qrc) specifying all the QML files and other
+resources, plus the *qmldir* file
+
+The .qrc file is the input to rcc. This will generate a Python module (called
+*shared_rc* here) that can then be imported from the Python code. At runtime,
+only this Python module is needed, not the .qrc file or any of the .qml files
+or even the image resources, as they have all been compiled into the Python
+module.
+
+For the example, rcc needs:
+
+* A Qt Resource Collection file (.qrc) specifying all the QML files and other
+resources. There is no qmldir file here because this is not a module.
+
+This will generate a Python module (called *window_rc* here) that can then be
+imported from the Python code. Again, only the Python module is needed at
+runtime.
diff --git a/examples/declarative/window/main.py b/examples/declarative/window/main.py
new file mode 100644
index 000000000..74d475e0b
--- /dev/null
+++ b/examples/declarative/window/main.py
@@ -0,0 +1,74 @@
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the Qt for Python examples of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:BSD$
+## You may use this file under the terms of the BSD license as follows:
+##
+## "Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are
+## met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in
+## the documentation and/or other materials provided with the
+## distribution.
+## * Neither the name of The Qt Company Ltd nor the names of its
+## contributors may be used to endorse or promote products derived
+## from this software without specific prior written permission.
+##
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+import os
+from pathlib import Path
+import sys
+
+from PySide6.QtCore import QUrl, qWarning
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtQml import QQmlComponent, QQmlEngine
+from PySide6.QtQuick import QQuickWindow
+
+import window_rc
+
+# Append the parent directory of this file so that Python can find and
+# import from the "shared" sibling directory.
+sys.path.append(os.fspath(Path(__file__).parent.parent))
+from shared import shared_rc
+
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ engine = QQmlEngine()
+
+ # Add the qrc root as QML import path so that the "shared" module
+ # can be found.
+ engine.addImportPath(":/")
+
+ component = QQmlComponent(engine)
+ QQuickWindow.setDefaultAlphaBuffer(True)
+ component.loadUrl(QUrl("qrc:///window/window.qml"))
+ if component.isReady():
+ component.create()
+ else:
+ qWarning(component.errorString())
+ app.exit(1)
+ app.exec()
diff --git a/examples/declarative/window/resources/icon.icns b/examples/declarative/window/resources/icon.icns
new file mode 100644
index 000000000..88b4b2444
--- /dev/null
+++ b/examples/declarative/window/resources/icon.icns
Binary files differ
diff --git a/examples/declarative/window/resources/icon.ico b/examples/declarative/window/resources/icon.ico
new file mode 100644
index 000000000..52af30a6c
--- /dev/null
+++ b/examples/declarative/window/resources/icon.ico
Binary files differ
diff --git a/examples/declarative/window/resources/icon.svg b/examples/declarative/window/resources/icon.svg
new file mode 100644
index 000000000..0b6153206
--- /dev/null
+++ b/examples/declarative/window/resources/icon.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="128"
+ height="128"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.2 r9819"
+ version="1.0"
+ sodipodi:docname="icon.svg"
+ inkscape:export-filename="/Users/rutledge/dev/qt5-stable/qtdeclarative/examples/quick/window/window/icon80.png"
+ inkscape:export-xdpi="61.509998"
+ inkscape:export-ydpi="61.509998"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4009">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4011" />
+ <stop
+ id="stop4019"
+ offset="0.875"
+ style="stop-color:#ffffff;stop-opacity:0.49803922;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4013" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 186.64798 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="559.62469 : 186.64798 : 1"
+ inkscape:persp3d-origin="279.81235 : 124.43199 : 1"
+ id="perspective4876" />
+ <inkscape:perspective
+ id="perspective2836"
+ inkscape:persp3d-origin="22 : 14.666667 : 1"
+ inkscape:vp_z="44 : 22 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 22 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <filter
+ inkscape:collect="always"
+ id="filter4063"
+ x="-0.195491"
+ width="1.390982"
+ y="-0.16235915"
+ height="1.3247183">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.3077485"
+ id="feGaussianBlur4065" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10"
+ guidetolerance="10"
+ objecttolerance="10000"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.9775825"
+ inkscape:cx="62.656189"
+ inkscape:cy="42.423381"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1280"
+ inkscape:window-height="744"
+ inkscape:window-x="2003"
+ inkscape:window-y="156"
+ showgrid="true"
+ borderlayer="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-global="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid7194"
+ visible="true"
+ enabled="true"
+ spacingx="8px"
+ spacingy="8px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-66.38047,-391.3222)">
+ <path
+ id="path7304"
+ d="M 95.556318,434.65407 L 165.25811,434.65407 L 165.25811,490.10429 L 95.556318,490.10429 L 95.556318,434.65407 z"
+ style="fill:#01afaf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141000000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="fill:#a7c706;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 96.869177,465.30846 c 27.677903,3.04574 41.155393,12.11589 48.000003,24 l -48.000003,0 0,-24 z"
+ id="path7300"
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path7302"
+ d="M 165.46767,465.22201 C 137.78977,468.26775 124.31228,477.33791 117.46767,489.22201 L 165.46767,489.22201 L 165.46767,465.22201 z"
+ style="fill:#966406;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1" />
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141000000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:1;fill-opacity:1"
+ d="M 95.532809,434.35736 L 74.567964,420.38079 L 74.567964,497.25189 L 95.532809,490.26361 L 95.532809,434.35736 z"
+ id="path7270"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#00ffff;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 74.567964,455.3222 L 95.532809,462.31048"
+ id="path7272"
+ sodipodi:nodetypes="cc" />
+ <g
+ style="fill:#80ffff;fill-opacity:1"
+ id="g7278"
+ transform="matrix(-0.8735352,0,0,0.8735352,244.36615,64.570513)">
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="M 24,32 L 0,16 L 0,104 L 24,96 L 24,32 z"
+ id="path7280"
+ transform="translate(66.38047,391.3222)" />
+ <path
+ style="fill:#80ffff;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="M 0,56 L 24,64"
+ id="path7282"
+ transform="translate(66.38047,391.3222)"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <path
+ style="fill:#ffffff;fill-opacity:1;filter:url(#filter4063)"
+ d="m 119.74679,437.94232 c -0.0487,0.003 -0.0932,0.0315 -0.14149,0.0354 -0.1659,0.0132 -0.33372,0.008 -0.49523,0.0354 -0.96156,0.0643 -1.9037,0.14607 -2.86523,0.21224 -2.94807,0.23566 -5.19987,2.66253 -5.19987,6.01345 l 0,39.51194 3.32508,3.07747 0,-0.0354 33.2155,-5.58898 c 2.28673,-0.39587 4.06792,-3.06727 4.06792,-5.97808 l 0,-32.18967 -30.5625,-5.023 c -0.45263,-0.0748 -0.91269,-0.0942 -1.34418,-0.0708 z"
+ id="path3987"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g3"
+ transform="matrix(0.20572087,0,0,0.20572087,113.4162,440.80626)">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path5"
+ style="fill:#006225"
+ d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path7"
+ style="fill:#80c342"
+ d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path11"
+ style="fill:#006225"
+ d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path13"
+ style="fill:#006225"
+ d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z"
+ style="fill:#ffffff"
+ id="path17"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path19"
+ style="fill:#006225"
+ d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+ inkscape:connector-curvature="0" />
+ <path
+ d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z"
+ style="fill:#006225"
+ id="path21"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:5.24121141;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 96.506224,434.65407 L 166.20801,434.65407 L 166.20801,490.10429 L 96.506224,490.10429 L 96.506224,434.65407 z"
+ id="rect7265" />
+ </g>
+</svg>
diff --git a/examples/declarative/window/resources/icon64.png b/examples/declarative/window/resources/icon64.png
new file mode 100644
index 000000000..0fa324401
--- /dev/null
+++ b/examples/declarative/window/resources/icon64.png
Binary files differ
diff --git a/examples/declarative/window/window.pyproject b/examples/declarative/window/window.pyproject
new file mode 100644
index 000000000..8ce352cd2
--- /dev/null
+++ b/examples/declarative/window/window.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "window.qml", "Splash.qml", "AllScreens.qml", "CurrentScreen.qml"]
+}
diff --git a/examples/declarative/window/window.qml b/examples/declarative/window/window.qml
new file mode 100644
index 000000000..a744cf60f
--- /dev/null
+++ b/examples/declarative/window/window.qml
@@ -0,0 +1,188 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt for Python examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+
+QtObject {
+ id: root
+ property real defaultSpacing: 10
+ property SystemPalette palette: SystemPalette { }
+
+ property var controlWindow: Window {
+ width: col.implicitWidth + root.defaultSpacing * 2
+ height: col.implicitHeight + root.defaultSpacing * 2
+ color: root.palette.window
+ title: "Control Window"
+ Column {
+ id: col
+ anchors.fill: parent
+ anchors.margins: root.defaultSpacing
+ spacing: root.defaultSpacing
+ property real cellWidth: col.width / 3 - spacing
+ Label { text: "Control the second window:" }
+ Grid {
+ id: grid
+ columns: 3
+ spacing: root.defaultSpacing
+ width: parent.width
+ Button {
+ id: showButton
+ width: col.cellWidth
+ text: root.testWindow.visible ? "Hide" : "Show"
+ onClicked: root.testWindow.visible = !root.testWindow.visible
+ }
+ //! [windowedCheckbox]
+ CheckBox {
+ text: "Windowed"
+ height: showButton.height
+ width: col.cellWidth
+ Binding on checked { value: root.testWindow.visibility === Window.Windowed }
+ onClicked: root.testWindow.visibility = Window.Windowed
+ }
+ //! [windowedCheckbox]
+ CheckBox {
+ height: showButton.height
+ width: col.cellWidth
+ text: "Full Screen"
+ Binding on checked { value: root.testWindow.visibility === Window.FullScreen }
+ onClicked: root.testWindow.visibility = Window.FullScreen
+ }
+ Button {
+ id: autoButton
+ width: col.cellWidth
+ text: "Automatic"
+ onClicked: root.testWindow.visibility = Window.AutomaticVisibility
+ }
+ CheckBox {
+ height: autoButton.height
+ text: "Minimized"
+ Binding on checked { value: root.testWindow.visibility === Window.Minimized }
+ onClicked: root.testWindow.visibility = Window.Minimized
+ }
+ CheckBox {
+ height: autoButton.height
+ text: "Maximized"
+ Binding on checked { value: root.testWindow.visibility === Window.Maximized }
+ onClicked: root.testWindow.visibility = Window.Maximized
+ }
+ }
+ function visibilityToString(v) {
+ switch (v) {
+ case Window.Windowed:
+ return "windowed";
+ case Window.Minimized:
+ return "minimized";
+ case Window.Maximized:
+ return "maximized";
+ case Window.FullScreen:
+ return "fullscreen";
+ case Window.AutomaticVisibility:
+ return "automatic";
+ case Window.Hidden:
+ return "hidden";
+ }
+ return "unknown";
+ }
+ Label {
+ id: visibilityLabel
+ text: "second window is " + (root.testWindow.visible ? "visible" : "invisible") +
+ " and has visibility " + parent.visibilityToString(root.testWindow.visibility)
+ }
+ Rectangle {
+ color: root.palette.text
+ width: parent.width
+ height: 1
+ }
+ CurrentScreen { }
+ Rectangle {
+ color: root.palette.text
+ width: parent.width
+ height: 1
+ }
+ AllScreens { width: parent.width }
+ }
+ }
+
+ property var testWindow: Window {
+ width: 320
+ height: 240
+ color: "#215400"
+ title: "Test Window with color " + color
+ flags: Qt.Window | Qt.WindowFullscreenButtonHint
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: root.defaultSpacing
+ Label {
+ anchors.centerIn: parent
+ text: "Second Window"
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.testWindow.color = "#e0c31e"
+ }
+ Button {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.margins: root.defaultSpacing
+ text: root.testWindow.visibility === Window.FullScreen ? "exit fullscreen" : "go fullscreen"
+ width: 150
+ onClicked: {
+ if (root.testWindow.visibility === Window.FullScreen)
+ root.testWindow.visibility = Window.AutomaticVisibility
+ else
+ root.testWindow.visibility = Window.FullScreen
+ }
+ }
+ Button {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.margins: root.defaultSpacing
+ text: "X"
+ width: 30
+ onClicked: root.testWindow.close()
+ }
+ }
+ }
+
+ property var splashWindow: Splash {
+ onTimeout: root.controlWindow.visible = true
+ }
+}
diff --git a/examples/declarative/window/window.qrc b/examples/declarative/window/window.qrc
new file mode 100644
index 000000000..89d1de1b1
--- /dev/null
+++ b/examples/declarative/window/window.qrc
@@ -0,0 +1,8 @@
+<RCC>
+ <qresource prefix="/window">
+ <file>window.qml</file>
+ <file>Splash.qml</file>
+ <file>CurrentScreen.qml</file>
+ <file>AllScreens.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/declarative/window/window_rc.py b/examples/declarative/window/window_rc.py
new file mode 100644
index 000000000..71a65fc44
--- /dev/null
+++ b/examples/declarative/window/window_rc.py
@@ -0,0 +1,328 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.5.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x04\xe8\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port QtQuick.Con\
+trols\x0a\x0aColumn {\x0a\
+ id: root\x0a \
+ spacing: 8\x0a\x0a \
+ Label {\x0a \
+ text: \x22Total nu\
+mber of screens:\
+ \x22 + screenInfo.\
+count\x0a fo\
+nt.bold: true\x0a \
+ }\x0a\x0a Flow {\x0a\
+ spacing:\
+ 12\x0a widt\
+h: parent.width\x0a\
+\x0a Repeate\
+r {\x0a \
+id: screenInfo\x0a \
+ model\
+: (Qt.applicatio\
+n as Application\
+).screens\x0a \
+ Label {\x0a \
+ re\
+quired property \
+string name\x0a \
+ requ\
+ired property in\
+t virtualX\x0a \
+ requi\
+red property int\
+ virtualY\x0a \
+ requir\
+ed property var \
+modelData // avo\
+id shadowing Lab\
+el.width and hei\
+ght\x0a\x0a \
+ lineHeight:\
+ 1.5\x0a \
+ text: name \
++ \x22\x5cn\x22 + virtual\
+X + \x22, \x22 + virtu\
+alY + \x22 \x22 + mode\
+lData.width + \x22x\
+\x22 + modelData.he\
+ight\x0a \
+ }\x0a }\x0a \
+ }\x0a\x0a Componen\
+t.onCompleted: {\
+\x0a var scr\
+eens = (Qt.appli\
+cation as Applic\
+ation).screens;\x0a\
+ for (var\
+ i = 0; i < scre\
+ens.length; ++i)\
+\x0a con\
+sole.log(\x22screen\
+ \x22 + screens[i].\
+name + \x22 has geo\
+metry \x22 +\x0a \
+ \
+ screens[i].vir\
+tualX + \x22, \x22 + s\
+creens[i].virtua\
+lY + \x22 \x22 +\x0a \
+ \
+ screens[i].wi\
+dth + \x22x\x22 + scre\
+ens[i].height)\x0a \
+ }\x0a}\x0a\
+\x00\x00\x04\x8e\
+\x00\
+\x00\x16\x10x\x9c\xcdXKo\xdb8\x10\xbe\xfbW\xb0\
+\xdaK\xb2\x85\xdf\xed\xc5E\xb0H\x5ctS E\x9b\
+8h\x0a,\xf6\xa0Hc\x8b\x1bZ4H*v6\
+\x9b\xff\xbe#\x91\xd4\xc3\xa2d\xa7q\xb7\xcb\x8b%r\
+\xf8q\xe6\x9b\x878\xee\xf7\xc9\x94\xaf\x1e\x04]D\x8a\
+\x1cM\x8f\xc9h0\x1a\x92\xeb\x08\xc8\xa5\xc2\x95\xe5\xca\
+\x8f\x1f\xc8\x85\x0a{\x9d~\x9f\xcc\xbe\xbc\xff\xd6\xbd\xa0\
+\x01\xc4\x12\xba\x1fC\x88\x15\x9dS\x10\x13b\xe6\xae`\
+\xde\xbdT]\xdc\xb6\x04\x11P\x9f\x91\xcfW\xe4l\xf6\
+\xbe;\xeeN\x99\x9fH\xe8t\xe8r\xc5\x85B\xf0\xcb\
+\x84\x06w[\xaf\xbd)\x8f\x95\xe0Lv:\x97\xea\xf3\
+\xed_\x10(\xf2\xd8!8h8!\x82s\x95\xbd\xac\
+\x04_\x81P\x0fD\x00\x1e\x11\xc2\xdcO\x98\x9a\xad\xfc\
+\x80\xc6\x8b\x09\x19\x0e\xaaB\xb3\x07\xa9`\xf9\xc5g\xa0\
+\x14\x90\x95\xfe\x9dlM?\x92\xa7Nu\xdb\xbd/H\
+\xa0\xd5\xb9\xa1q\xc8\xd7\x13\xa2\x7f\x8dF\xe9X\xd3P\
+E\x13\x14c=4\x84\xd1\x80\xaa\x9bt\x8a\xbc\xce\x94\
+\xedUU#\xbf\x92Q\xbe5\x82\x94\xf1\xea\xde\xf3l\
+n\x8f\xcd\xb8\x89\x0bMH\xcf\x18\xd4[g\xca\xe5\x22\
+\x8a*\x86Vz\x86Q\xa3\xbb\x97\xafO9K\x96q\
+\xc9\x16\xcb2bW\xe6\xfc8\x88\xb8\x90\xbd9el\
+\x82\xf4\x09\xf4\xbaS`\xe9\x8b\x05\x8d\xe5\xc4\xa5}e\
+\x83\xb4\x9e\xda%X\xf5s\x00\x8c\xdd\x14\x84g\xdc\x93\
+>\x19\x93\xaeE\xacl\xbe\xf0o\x81\xa1_\x15lT\
+\x89\x07\x85\x91-\x01\x1d\x1b\x12\xcd\xd8\xc4C\xd7\x977\
+\xfe.h\xb8\xc5\x8b\xe5f\x81K\xb5\x85 c\x12\xed\
+\x1e\xd7\x96\xf6\xb64\x1d&\x984\xc3\xda\xbc\x9a\xccY\
+\xa2\x14\xdf\xf6ZYC\x19\xf1\xb5\x16r\x8a\x94\x026\
+\xa7\xd3)\xa8Y\xcb\xd4V \x95\x8e\x9e\xde=\x95\xf4\
+\x96\x01\xf9\x8dx\xe74\x04\x8f \xb1\xb3\xa8\x1cV\xe5\
+\xc1\xe3)\x86\xf5\x1d\x84\xcd@'\xe4U\xc3R\x0d\xf1\
+\xa96\xd3\xef\xbf\x22\x7fh'B8\x8d \xb8\xbb\xe5\
+\x9b?kb\xd9\xca\x19\xdf4\xb0f\xe2\xe3\xc6\xe0\xb8\
+M\xb1\xd9Z\xd0\xdb\xd3S/c\xf9\x0c\x0fMs\x1b\
+]\x1a\xa4Z\x02\x06\x1e\x16\x1e\x96@\x03e\x94QL\
+\x87\x93\x93\x13\x93\xcf=\xab\xb6\x83\x9et\xecr\x81\xc1\
+\xdbF\xfb\xcf\xc8\xffA\xbc\x1a\x9f~H\x18#\xb3@\
+\x00\xc4n\xb7\xbe\x9c\xff\xf4\x08}\xc2a<P\xe0\xed\
+\xe1\x83\x9d\xd5\xc0O\x14?\x5c5\xf0N\x11n\xe9+\
+\x1a|_\xbeo\x99\x9a\xa3}\xcd\x17\xf7\xb0y\xcf\x80\
+*,o\x0b(c\xd7'\x1a\xd3%\xfd\xbb)\xf9_\
+\x1e%\xf9\x01\x87\x09\x92\x1c\xeeg\xf1\xe5o~0_\
+\xf6\x80\x03\xf1e\xe1v\xf0U}\x9b'q\xa0(\x1a\
+Q@^\xf3\x99\x12h\xda\xd1\xfd\xb1\x83O\xb9\xa6*\
+\x88\x88{1\xf0%l\x97\xd9\x89\xd38\x01*\x111\
+\xf1lq\xf5\xde\xb5\x82\xe5\xc1\xd0\x8e\xb6\xccc|\x07\
+\x9c\xe5j\x07\x5c\x1e\x02\xedpE=k\xc7\x9b\xa3\x9c\
+\xd4\x95\xba\x1d\xd0Q5\xda\x91\xfd\xbch\xb5\x03\xe3\x85\
+&\xdc\xa5e\x94\xc98\x80\xeaaj\xb7$\xf1]\xcc\
+\xd7\xdb{\xaa\xf2\xe6\xaa\xea\xbcr\x16\xc1\x97I\xd5d\
+LJV\xae\xb4\x84J\xe2a\x1bq\xd4r\x7f3\x8f\
+\xd9\x15\x8e\xc6\xf6\xed\x98\xbcv\x12@\x10\xcfG\xfc\xc8\
+\x97%\x8d\xb2C\xcc}\xd5\x91$\xcd\xa9y\xdcB\xc6\
+\x156}~\xbc@-\x1dI\xe4\xe8{R\x02\xbe\xeb\
+.mK\xdf\xb0E\x99i\x22R\x04\xf3\x85\x7f\xfc?\
+\xabzj\x13M\xa2\x9e\x0e\xd0\x92\xb8~r5\xbc\x85\
+\xb7\x9a\xbb\xdd\xf1hP\xebbGo\x8a9c\xb9\xf7\
+\xcbh\xf8\xf6\xcd`P|#lKz\x8d\x87Xt\
+,\x99\x91\xde\x91\x05S\xf6\x94o\x983\x7f\x81}\xd5\
+\xa52\x15\x93\xfcS<\x7f\xc8\x0b\x86\xfel\x9d\xd3R\
+[\xda\xe4\x98\xc3\xf7\xb2M\xa9k\x81\x02<\x01\xc4\xc7\
+\xd8yZF\x8a\xce\xdf\x99\xce\xdf\xed.\xbd\xee\xe6O\
+<\x91p\x8a\x0dq\xcb\xa1\x8d\xe6\xa5\xa3\xe5\xdb\xa9\xfd\
+p\x82\xae\x83A0\x1eB\x9b\x1e\x8dwO\xab\x84\xd0\
+\x91aBP8\xef\x14VV\xf1U.\x89\xcf\x8dr\
+{\xbb\xa5`\xf6\xd9\xd7x\xac\x8d\xb0\xa1\x8a\x94\xbeH\
+i\x8d\x5c\xf0\xf2LS\x16\x0f\xdf\x0e\xda\x08o\xb8\xa9\
+\xcf\x1b*u\x8b\x9a\xc7N\xa4t\x1c\xea\xea\x9d\x0e`\
+\xb2\xde\x88?\xe7\xa0\xbd\xdb\x99g\x06\x17\x83y\x11[\
+\xe9\xcb\xcf\x08-\xef[c\x1c\x8c[\xc3\xa0\x96w\x8c\
+K8j\xfa(6Wk\xb9b\xbe\x8cl\xbd\x9ee\
+o%\xd2x|M\x97\xc0\x13\x9b\x05\x95\x7f3K\x7f\
+\xc1(\x91\x809\xe3\xa9\xf3/I\x8e\xfe,\
+\x00\x00\x03\xfa\
+/\
+/ Copyright (C) \
+2021 The Qt Comp\
+any Ltd.\x0a// SPDX\
+-License-Identif\
+ier: LicenseRef-\
+Qt-Commercial OR\
+ BSD-3-Clause\x0a\x0ai\
+mport QtQuick\x0aim\
+port shared\x0a\x0a//!\
+ [splash-propert\
+ies]\x0aWindow {\x0a \
+ id: splash\x0a \
+ color: \x22transpa\
+rent\x22\x0a title:\
+ \x22Splash Window\x22\
+\x0a modality: Q\
+t.ApplicationMod\
+al\x0a flags: Qt\
+.SplashScreen\x0a \
+ property int t\
+imeoutInterval: \
+2000\x0a signal \
+timeout\x0a//! [spl\
+ash-properties]\x0a\
+//! [screen-prop\
+erties]\x0a x: (\
+Screen.width - s\
+plashImage.width\
+) / 2\x0a y: (Sc\
+reen.height - sp\
+lashImage.height\
+) / 2\x0a//! [scree\
+n-properties]\x0a \
+ width: splashI\
+mage.width\x0a h\
+eight: splashIma\
+ge.height\x0a\x0a I\
+mage {\x0a i\
+d: splashImage\x0a \
+ source: I\
+mages.qtLogo\x0a \
+ MouseArea {\
+\x0a anc\
+hors.fill: paren\
+t\x0a on\
+Clicked: Qt.quit\
+()\x0a }\x0a \
+ }\x0a //! [time\
+r]\x0a Timer {\x0a \
+ interval:\
+ splash.timeoutI\
+nterval; running\
+: true; repeat: \
+false\x0a on\
+Triggered: {\x0a \
+ splash.\
+visible = false\x0a\
+ spla\
+sh.timeout()\x0a \
+ }\x0a }\x0a \
+ //! [timer]\x0a \
+ Component.onCom\
+pleted: visible \
+= true\x0a}\x0a\
+\x00\x00\x02\xff\
+\x00\
+\x00\x0adx\x9c\xadV\xdfo\xda0\x10~\xcf_q\
+\xcb\x13l#\x01\xd6MS\xfa0mT[+\xa1\xb5\
+\x85J\xeb\xb4\xee\xc1$\x07XM\xec\xc8q(h\xe2\
+\x7f\x9f\x9d_8\x90\x12\xaa-O\xb9\xf3w\xf7}\xf1\
+\x9d}q]\x18\xf1x#\xe8b)\xa13\xea\xc2\xb0\
+?\x1c\xc0\xdd\x12\xe1V\xaa\x95(&l\x03c\x198\
+\x96\xeb\xc2\xf4\xe6\xe2\xbe7\xa6>\xb2\x04{W\x012\
+I\xe7\x14\x85\x07\x85o\x82\xf3\xde\xad\xec\xa9\xb0\x08\x85\
+OI\x08\xd7\x13\xf82\xbd\xe8\xbd\xeb\x8dB\x92&h\
+Y4\x8a\xb9\x90*\xf9mJ\xfd\xc7=\xd3\x19q&\
+\x05\x0f\x13\xcb\xba\x92\x18\xc1\x1f\x0b\xd4C\x03\x0f\x04\xe7\
+23\x9eh \x97\x1e\x9c\xf5\xfb\x99\xb9D-\xdc\x83\
+X\xf0\x18\x85\xdc|\x134pT\xd2\x90\xfaT^f\
+\x8b\xf0\x06\x06\x1f\xac\x0c=O\x99/)g\xc0\x05U\
+\xe2\x89~\xbf\xe3S)([tx\xb7\xe0\xd3O\xf2\
+D\xa5\xbf\x84\xba\xd3'\x89\xde\x16\xe7F\xd0\x88\x88\xcd\
+\xf5.\x89Wa\xf4#P\xa6\x82\x81\x1d\xe78\xfb\xfc\
+0\x83\xfahA\xa8lOQ\x00\x1br\x8c\x09\x0b\x12\
+\x9f\xc4\xd8\x9a$,\x91\x0dY\xae\xd8J\xed\x1b\x06'\
++\xa2E\x00\x1c\x91V&=]b\x95\xb5I\xeb\xd6\
+\xda\x87\xa7\xec\x91\xf1'V`\xb6yuu\xed\x8dj\
+\xe9\xb61\xdbb\xa7\x92\x87i\xc4\x12\x0f\x86\xbbr\xc7\
+\xc4W=\xe0\xc1\xc7\xca\xb5\xf6Jo\xe5\xda\xec\x5c\x95\
+\xcfu_\xc1\xaf\xc4\x17\x88\xecw\xe5\x1c\x93\x19\x86\x86\
+\x14\xfdH\x5c\xab>\xb5\xa7\x19\x14\x1el[\xf5en\
+8\x8cD\xa8,\xfb\xc1\xf6\xecZ\xcc\x5c\x1d\x07g\xc6\
+C\xf5%R\xa4\xd8\xb0!\xf91)O\xc5\xe0\xbc:\
+\x10\x03\xd8*m\x99^\x14\xd6\xbe\xb2RMDX:\
+'\xbe\xdaT\x14\xb6\x91\xb6\x0e+d\x9a`\xf8\xd4\xe8\
+\xf5v\xa5)\xab\xd2\xc4\xca\x03\x0c\xdb\xe94\xca\xe0\xc9\
+\xcc\xd3\x08\x12\x14\xfa\xf2ai4;\xe1\xbbr\xf4\xf7\
+\x0c\xbc\xe3\xabyO\xa3\x0dh\xa4nA\xd5\xe3I+\
+gV0]\xf3\xb5\xd1\x07y\xed\x8e\x10\xc4t\xad\xcc\
+@\x93\xc8M+G\x86\xbe\xc8\xc1\x8e\xe4_\x95\x19t\
+\x86]\xcd\x0a\x01\x97\x89\x1bE\xd0\xd1\xf4\x9d\x86\x00x\
+\x0d\xc3\xf7\xceY\xb71\x902\x7f\xd9=\xb6\x13!_\
+P_U\xe0e\x82\x8b\xa8\x9b\x97\xean\x88\xfb7\xf9\
+\x01\xae\xd4@+\xd4\x0b}m\xb5j\xcfC2\x09\x13\
+\x1d`\x12?ODV\x84\x86d\x16\x22\xac\xa8\x90)\
+\xd1{\x95<J\x1e\x9f\xc0\x97\xe1>\x97\x09~45\
+\xd4>\xe8\xb2\xb5\xc1\xb8\xda<= ){\xb1\xa2\x02\
+\x7f\xafE\xbc\x05CE\xb1\xf0\xf3\x08\xaf1\x8f\x9f\xe7\
+\xd1\xff\x00N\xd3\xe4.x\x8c\xa5\xbc\xd8\x1dC\x84\xb1\
+\xa8\xd7\x8e\x96\xbf\x98\xdb\xf0_T\xc5\x07?\x0b\x87\xe2\
+\x0e1\x95\xc6\x92\xb46g\x9e\x13>\xe8\xab\xa3!\xd0\
+\x97\x84-B4\xc3'\xa5so*\xa9Y\xc8\xd5\xff\
+\x9b-0\xa8\x8f\x9eb\xa24\xdf\x0c\x83~\x0d[\xce\
+\x9c,foHm\xad\xad\xf5\x17o|\x1ar\
+"
+
+qt_resource_name = b"\
+\x00\x06\
+\x07\xe0Kg\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\
+\x00\x0e\
+\x0ei\x17\x5c\
+\x00A\
+\x00l\x00l\x00S\x00c\x00r\x00e\x00e\x00n\x00s\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x0bi\x98\xbc\
+\x00w\
+\x00i\x00n\x00d\x00o\x00w\x00.\x00q\x00m\x00l\
+\x00\x0a\
+\x08\x90\x1a|\
+\x00S\
+\x00p\x00l\x00a\x00s\x00h\x00.\x00q\x00m\x00l\
+\x00\x11\
+\x02YG\x1c\
+\x00C\
+\x00u\x00r\x00r\x00e\x00n\x00t\x00S\x00c\x00r\x00e\x00e\x00n\x00.\x00q\x00m\x00l\
+\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00h\x00\x01\x00\x00\x00\x01\x00\x00\x0d|\
+\x00\x00\x01\x82Y\xad^\x0f\
+\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x09~\
+\x00\x00\x01\x82Y\xad^\x0f\
+\x00\x00\x004\x00\x01\x00\x00\x00\x01\x00\x00\x04\xec\
+\x00\x00\x01\x82Y\xad^\x0f\
+\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x82Y\xad^\x0f\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()