Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
getting-started.qdoc
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4
/*!
5
\page qmlapplications.html
6
\title Getting started with Qt Quick applications
7
\keyword QML Applications
8
\brief Essential documentation for Qt Quick application developers
9
\ingroup explanations-programminglanguages
10
11
QML is a declarative language that allows user interfaces to be described in
12
terms of their visual components and how they interact and relate with one
13
another. It is a highly readable language that was designed to enable
14
components to be interconnected in a dynamic manner, and it allows components to
15
be easily reused and customized within a user interface. Using the \c QtQuick
16
module, designers and developers can easily build fluid animated user interfaces
17
in QML, and have the option of connecting these user interfaces to any back-end
18
C++ libraries.
19
20
\section1 Qt Academy Courses
21
22
The following Qt Academy courses are recommended for getting started with QML
23
and Qt Quick.
24
25
\section2 Basic courses
26
27
\list
28
\li \l {https://www.qt.io/academy/course-catalog#qml-for-beginners}{QML for Beginners}
29
\li \l {https://www.qt.io/academy/course-catalog#introduction-to-qml}{Introduction to QML}
30
\li \l {https://www.qt.io/academy/course-catalog#introduction-to-qt-quick}{Introduction to Qt Quick}
31
\li \l {https://www.qt.io/academy/course-catalog#introduction-to-qt-quick-controls}{Introduction to Qt Quick Controls}
32
\li \l {https://www.qt.io/academy/course-catalog#creating-a-simple-qt-quick-application-}{Creating a Simple Qt Quick Application}
33
\endlist
34
35
\section2 Intermediate courses
36
37
\list
38
\li \l {https://www.qt.io/academy/course-catalog#qml-dashboard:-main-ui}{QML Dashboard: Main UI}
39
\li \l {https://www.qt.io/academy/course-catalog#qml-dashboard:-inbox}{QML Dashboard: Inbox}
40
\li \l {https://www.qt.io/academy/course-catalog#qml-dashboard:-calendar}{QML Dashboard: Calendar}
41
\li \l {https://www.qt.io/academy/course-catalog#qml-dashboard:-courses}{QML Dashboard: Courses}
42
\endlist
43
44
\section1 What is QML?
45
46
QML is a user interface specification and programming language.
47
It allows developers and designers alike to create highly performant, fluidly
48
animated and visually appealing applications. QML offers a highly readable,
49
declarative, JSON-like syntax with support for imperative JavaScript
50
expressions combined with dynamic property bindings.
51
52
\snippet qmlapp/qml_overview.qml file
53
54
The QML language and engine infrastructure is provided by the \l {Qt Qml}
55
module. For in-depth information about the QML language, see the
56
\l{Qt Qml} module documentation.
57
58
The following pages contain more information about QML:
59
60
\list
61
\li \l{\QC: Create Qt Quick Applications}
62
\li \l{\QVSC: Tutorial: Qt Quick application}
63
\li \l{First Steps with QML} - begin using QML with these examples
64
\li \l{Glossary of QML Terms}
65
\li \l{The QML Reference} - reference about the QML constructs and features
66
\li \l{qml-codingconventions.html}{QML Coding Conventions}
67
\li \l{All QML APIs by Module}
68
\endlist
69
70
\section1 What is Qt Quick?
71
72
Qt Quick is the standard library of QML types and functionality for QML. It
73
includes visual types, interactive types, animations, models and views,
74
particle effects and shader effects. A QML application developer can get
75
access to all of that functionality with a single import statement.
76
77
The \c QtQuick QML library is provided by the \l{Qt Quick} module.
78
For in-depth information about the various QML types and other functionality
79
provided by Qt Quick, please see the \l{Qt Quick} module documentation.
80
Qt Quick adds visual types, animation types, and other QML types in addition to
81
the standard QML types from Qt Qml.
82
83
\list
84
\li \l{Visual types}
85
\li \l{Positioners and layouts}
86
\li \l{Handling user input}
87
\li \l{Displaying text}
88
\li \l{Animations}
89
\li \l{Integrating JavaScript in QML}
90
\endlist
91
92
\section2 Buttons, Menus, and other Controls
93
94
For a set of UI controls, the \l{Qt Quick Controls} module implements several
95
controls such as buttons, menus, and views. These controls come with
96
several built-in styles that can be used, and also support the creation
97
of custom styles.
98
99
\section1 Qt Quick Application Development
100
101
\l{\QC Documentation}{\QC} has built-in support for creating Qt Quick
102
applications. \l{Qt VS Tools} and the \l{Qt Extension for VS Code}
103
also allow you to create Qt Quick applications with Visual Studio and Visual
104
Studio Code. The \QMLLS can be used from any IDE supporting the language server
105
protocol.
106
107
For a design centric workflow, use \QDS.
108
109
For more information about creating Qt Quick applications, visit the following
110
pages:
111
112
\list
113
\li \l{\QC: Create Qt Quick Applications}
114
\li \l{\QDS: Getting Started}
115
\endlist
116
117
\section1 Code Samples and Demos
118
119
To learn more about uses of QML code, there are several code samples which show
120
how QML types are used. In addition, there are several demos which show how
121
QML code is used in applications.
122
123
\list
124
\li \l{Getting Started programming with Qt Quick: An Alarm Application} - a tutorial showing the
125
creation of a simple alarm application.
126
\li \l{Qt Quick Examples and Tutorials}
127
\endlist
128
129
\section1 Advanced Application Development Topics
130
131
\list
132
\li \l{Overview - QML and C++ Integration}
133
\li \l{Deploying QML Applications}
134
\li \l{Qt Quick Compiler}
135
\li \l{Best Practices for QML and Qt Quick}
136
\li \l{Performance considerations and suggestions}
137
\li \l{Internationalization with Qt}{Internationalization and Localization}
138
\li Testing and Debugging
139
\list
140
\li \l{qml_runtime_tool}{Prototyping with the QML Runtime Tool}
141
\li \l{Debugging QML Applications}
142
\li \l{Qt Quick Test}{Qt Quick Test: QML Unit Testing Framework}
143
\endlist
144
\endlist
145
146
\section1 Related Topics
147
148
\list
149
\li \l{All QML Types}
150
\li \l{All QML APIs by Module}
151
\li \l{Obsolete QML Types}
152
\endlist
153
154
*/
qtdeclarative
src
quick
doc
src
getting-started
getting-started.qdoc
Generated on
for Qt by
1.16.1