summaryrefslogtreecommitdiff
path: root/src/controls/doc/src/qtquickcontrols-overview.qdoc
blob: 4eb6892fe129e8f6ec312408945b20853876e968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** 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 Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/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: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \page qtquickcontrols-overview.html
    \title Qt Quick Controls Overview
    \brief A set of UI controls to create user interfaces in Qt Quick

    The Qt Quick Controls provide a set of UI controls to create user interfaces
    in Qt Quick.

    \section1 Getting Started

    The QML types can be imported into your application using the following import statement in your \c {.qml} file.

    \code
     import QtQuick.Controls 1.0
    \endcode

    \section1 Creating a basic example

    A basic example of a QML file that makes use of controls is shown here:

    \code
    import QtQuick.Controls 1.0

    ApplicationWindow {
        title: "My Application"

        Button {
            text: "Push Me"
            anchors.centerIn: parent
        }
    }
    \endcode

    For an overview of the controls provided by \l{Qt Quick Controls}, you can look at
    the \l{Qt Quick Controls - Gallery}{Gallery} example.

    \image qtquickcontrols-example-gallery.png

    \section1 Setting Up Controls from C++

    Although we have traditionally used a QQuickView window to display QML files
    in a C++ application, doing this means you can only set window properties from C++.

    With Qt Quick Controls, declare an ApplicationWindow as the root item of your application and launch it by using the
    QQmlApplicationEngine instead. This ensures that you can control top level window properties from QML.

    A basic example of a source file that makes use of controls is shown here:

    \code
    #include <QApplication>
    #include <QQmlApplicationEngine>

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        QQmlApplicationEngine engine("main.qml");
        return app.exec();
    }
    \endcode

    \note We are using QApplication and not QGuiApplication in this example.
    Though you can use QGuiApplication instead, doing this will eliminate platform-dependent styling.
    This is because it is relying on the widget module to provide the native look and feel.

    \section2 Using C++ Data From QML

    If you need to register a C++ class to use from QML, you can call, for example,
    qmlRegisterType() before declaring your QQmlApplicationEngine. You can find the list
    of all registering functions \l{QQmlEngine}{here}.

    If you need to expose data to QML components, you need to set them
    to the context of the current QML engine. See QQmlContext for more
    information.

    \section1 Related information

     \list
      \li \l{Qt Quick}
      \li \l{Qt Quick Controls}
      \li \l{Qt Quick Controls Examples}
    \endlist
*/