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