| /**************************************************************************** |
| ** |
| ** Copyright (C) 2017 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| /*! |
| \title Qt Quick Examples - Window and Screen |
| \example window |
| \brief This example demonstrates the Window and Screen types in QML. |
| \image qml-window-example.png |
| \ingroup qtquickexamples |
| |
| \e{Window and Screen} shows how to: |
| |
| \list |
| \li create a window in QML |
| \li control its \l {QQuickWindow::visibility} {visibility} |
| \li present a splash screen during application startup |
| \li access the properties of the \l Screen |
| \endlist |
| |
| It also demonstrates how to package QML into \l {The Qt Resource System} |
| {resources} and provide an \l {Setting the Application Icon} {icon} to |
| create a standalone QML desktop application. |
| |
| \include examples-run.qdocinc |
| |
| \section1 Window Implementation |
| |
| A splash screen can be created with the \l {Qt::SplashScreen} |
| {Qt.SplashScreen} flag, and should be \l {Qt::ApplicationModal} |
| {ApplicationModal} to prevent interaction with the main window. If the |
| splash window is also transparent, and showing a partially transparent |
| image, then it will look like a shaped window. |
| |
| \snippet window/Splash.qml splash-properties |
| |
| In this example a \l Timer will automatically dismiss the splash screen, |
| but in a real application you might want to connect to a signal from the |
| application logic to hide the splash when initialization is complete. |
| |
| \snippet window/Splash.qml timer |
| |
| The main window in this example is the control window, with some buttons |
| and checkboxes to control and provide feedback on the state of a secondary |
| window. Each checkbox has a binding to the property whose state it is |
| displaying, and also an onClicked handler to change the state. This is the |
| typical pattern to create a two-way binding while avoiding binding loops. |
| |
| \snippet window/window.qml windowedCheckbox |
| |
| \l Screen has several properties which are generally useful to |
| applications which need to rotate some content when the screen orientation |
| changes, to position windows on the screen or to convert real units to |
| logical pixel units. CurrentScreen.qml (which is displayed inline in |
| window.qml, or can be run by itself with qmlscene) simply displays the |
| property values, while the splash screen uses them to center the window on |
| the screen. |
| |
| \snippet window/Splash.qml screen-properties |
| |
| If a \l Window is nested inside an \l Item or another Window, the inner |
| window becomes \e{transient for} the outer one (see \l Window for more |
| explanation). But if you want to create multiple top-level windows as |
| unrelated peers, you can create them inside a non-visual \l QtObject root |
| item, as this example does. |
| */ |