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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\previouspage creator-getting-started.html
\page creator-overview.html
\nextpage creator-quick-tour.html
\title Overview
\QC is a cross-platform, complete integrated development environment
(IDE) that you can use to create applications for desktop, embedded,
and mobile operating systems, or web browsers.
With Qt, you can develop applications and user interfaces once and deploy
them to many platforms. \QC has the tools for accomplishing your tasks
throughout the whole application development life-cycle, from creating a
project, designing a UI, and writing code to building applications and
deploying them to the target platforms for running and debugging.
\image qt-app-dev-flow.webp {Application development life-cycle}
\caption Application development life-cycle
\section1 Projects
First, you need a \e project. \QC relies on a separate build system, such as
CMake, qmake, or Qbs for building the project. From the build system, \QC
gets most of the information it needs to offer services for writing, editing,
and navigating source code, as well as to deploy and run applications. It
stores additional information in the project settings.
Share projects with other designers and developers across different
development platforms with a common tool for design, development, and
debugging.
\list
\li \l{Creating Projects}
To set up a project, you first have to decide what kind
of an application you want to develop: do you want a user
interface based on \l{User Interfaces}
{Qt Quick or Qt Widgets}. Second, you have to choose the
programming language to implement the application logic:
C++ or Python.
\li \l{Version Control Systems}
The recommended way to set up a project is to use a
version control system. Store and edit only project
source files and configuration files. Do not store
generated files.
\li \l{Configuring Projects}
Installation programs and project wizards create default
configurations for \QC and your projects. Change the
configurations in the \uicontrol Projects mode.
\endlist
For more information, see \l{Manage Projects}{How To: Manage Projects}.
\section1 User Interfaces
\image heartgame-start.webp {Heart Rate Game}
To create intuitive, modern-looking, fluid user interfaces, use \l{Qt Quick}
and \l{Qt Design Studio Manual}{\QDS}:
\list
\li \l {\QMLD}
Or, enable the \QMLD plugin to visually edit \l{UI Files}{UI files}
(.ui.qml).
\li \l {Converting UI Projects to Applications}
Qt Quick UI Prototype projects (.qmlproject) are useful
for creating user interfaces. To use them for application
development, you have to convert them to Qt Quick
Application projects that have project configuration
files (CMakeLists.txt or .pro), .cpp, and .qrc files.
\li \l {UI Files}
If you switch between \QC and \QDS or cooperate with
designers on a project, you might encounter .ui.qml files.
They are intended to be edited in \QDS only, so you need
to be careful not to break the code. To visually edit the
files in \QC, enable the \QMLD plugin.
\li \l{Using QML Modules with Plugins}
Load C++ plugins for QML to simulate data.
\endlist
If you need a traditional user interface that has a clear structure and
enforces a platform look and feel, use \l{Qt Widgets} and the integrated
\l{\QD}.
For more information, see \l{Design UIs}{How To: Design UIs} and
\l{UI Design}.
\section1 Code
Writing, editing, and navigating in source code are core tasks in application
development. Therefore, the code editor is one of the key components of \QC.
Use the code editor in the \l {Edit Mode}{Edit mode}.
As an IDE, \QC differs from a text editor in that it knows how to build and
run applications. It understands the C++ and QML languages as code, not just
as plain text. Therefore, it can offer useful features, such as semantic
highlighting, checking code syntax, code completion, and refactoring actions.
\QC supports some of these services also for other programming languages,
such as Python, for which a \e {language server} is available that provides
information about the code to IDEs.
\section2 Find
Use the incremental and advanced search to search in currently open projects
or files on the file system or use the locator to browse through projects,
files, classes, functions, documentation, and file systems.
\section2 Refactor
\e {Code refactoring} is the process of improving and simplifying code
without modifying the existing functionality of an application. Find
and rename symbols and apply predefined actions to refactor code.
Refactor code to:
\list
\li Improve internal quality of your application
\li Improve performance and extensibility
\li Improve code readability and maintainability
\li Simplify code structure
\endlist
\section2 Configure the Editor
Configure the text editor to suit your specific needs. Change the fonts,
colors, highlighting, and indentation.
If you are used to the Vim editor, run the main editor in the
\l {FakeVim Modes and Commands}{FakeVim mode}.
For more information, see \l{Edit Code}{How To: Edit Code} and \l{Editors}.
\section1 Build, Deploy, and Run
Run and deploy Qt applications that you build for different target
platforms or with different compilers, debuggers, or Qt versions.
\l{glossary-buildandrun-kit}{Kits} define the tools, \l{glossary-device}
{device} type and other settings to use when building and running your
project.
\QC integrates cross-platform systems for build automation: CMake,
qmake, Qbs, and Autotools. In addition, you can import projects as
\e {generic projects} and fully control the steps and commands to
build the project.
Build applications for, deploy them to, and run them on the desktop
environment or a device. With kits, as well as build, run, and deployment
configurations, you can quickly switch between different setups and
target platforms.
For more information, see \l{Build and Run}{How To: Build and Run},
\l{Build Systems}, \l{Build Configurations}, and \l{Run Configurations}.
\section2 On Devices
When you install tool chains for device types as part of a Qt distribution,
the build and run configurations for the devices might be set up
automatically. However, you might need to install and configure some
additional software on the devices to be able to connect to them
from the computer.
Deployment configurations handle the packaging and copying of the necessary
files to a location you want to run the executable at, such as the file
system of a device.
For more information, see \l{Connecting Devices} and \l{Deploying to Devices}.
\section2 Preview QML
Use the QML live preview to preview a QML file or an entire Qt Quick
application on the desktop, as well as on Android and embedded Linux
devices. The changes you make to the UI are instantly visible to you
in the preview.
For more information, see \l{Validating with Target Hardware}.
\section1 Debug
A debugger lets you see what happens \e inside an application while it runs
or when it crashes. A debugger can do the following to help you find errors
in the application:
\list
\li Start the application with parameters that specify its behavior.
\li Stop the application when conditions are met.
\li Examine what happens when the application stops.
\li Make changes in the application when you fix an error and continue
to find the next one.
\endlist
\QC integrates several external native debuggers for inspecting the state of
your application while debugging. The debugger plugin automatically selects
a suitable native debugger for each kit from the ones it finds on the
computer. Edit the kits to override this choice.
Connect devices to your computer to debug processes running on the devices.
For more information, see \l{Debugging}.
\section1 Analyze
Devices have limited memory and CPU power, so you should use them carefully.
\QC integrates code analysis tools for detecting memory leaks, profiling
function execution, analyzing CPU use, and eliminating unnecessary complexity
of code. Other tools provide code coverage and visualize trace events.
Install and configure the tools on your system to use them from \QC.
However, the QML Profiler is installed as part of \QC for profiling
Qt Quick applications.
For more information, see \l{Analyzing Code}.
\section1 Autotest
Create, build and run Qt tests, Qt Quick tests, Google tests, and Boost tests
to unit test applications and libraries.
Map AUTs (Application Under Test) to \QC and run Squish test suites
and cases from it.
For more information, see \l{Running Autotests} and \l{Using Squish}.
\section1 Publish
Create installation packages for mobile devices that you publish to
application stores and other channels. You must make sure that the
package contents meet the requirements for publishing on the channel.
For more information, see \l{Publishing to Google Play}.
\section1 Qt Tools
\QC is one of many Qt tools for designing and developing applications.
\image qt-tools.webp {Tools for Qt application development}
\caption Tools for Qt application development
*/
|