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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
|
/****************************************************************************
**
** Copyright (c) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator
**
**
** GNU Free Documentation License
**
** 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.
**
**
****************************************************************************/
// **********************************************************************
// 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.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-project-managing.html
\page creator-project-creating.html
\nextpage creator-project-opening.html
\title Creating Projects
Creating a project enables you to:
\list
\li Group files together
\li Add custom build steps
\li Include forms and resource files
\li Specify settings for running applications
\endlist
Setting up a new project in \QC is aided by a wizard that guides you
step-by-step through the project creation process. The wizards prompt you
to enter the settings needed for that particular type of project and create
the necessary files for you. You can add your own custom wizards to
standardize the way subprojects and classes are added to a project.
The wizards create projects that use the Qt build tool, qmake. It is a
cross-platform system for build automation that helps simplify the build
process for development projects across different platforms. qmake
automates the generation of build configurations so that only a few lines
of information are needed to create each configuration. For more
information about qmake, see the \l{qmake Manual}.
You can modify the build and run settings for qmake projects in the
\gui Projects mode.
Alternatively, you can use the CMake build automation system and set up the
projects manually. In addition, you can import projects as
\e {generic projects} that do not use qmake or CMake. This enables you to
use \QC as a code editor and to fully control the steps and commands used to
build the project.
You can install tools for mobile devices
as part of an SDK. The \l{glossary-buildandrun-kit}{kits} and build and run settings for the
installed device types are 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 development PC.
\section1 Using Project Wizards
In the first step, you
select a template for the project. You can filter templates (1) to view only
those that apply to a particular device type.
\image qtcreator-new-qt-quick-project-wizard.png
Next, you select a location for the project and specify settings for it.
When you have completed the steps, \QC automatically generates the project
with required headers, source files, user interface descriptions and project
files, as defined by the wizard.
For example, if you choose to create a Qt Quick application, \QC generates a
QML file that you can modify with the integrated \QMLD.
\section1 Selecting Project Type
You can use wizards to create following types of projects:
\list
\li Applications
\list
\li Qt Widgets Application
Use \QD forms to design a Qt widget based user interface for the
desktop and C++ to implement the application logic
\li Qt Quick Application
Create a Qt Quick application that contains both QML and C++
code. The project includes a QDeclarativeView or a QQuickView.
You can build the application and deploy it to desktop and
mobile target platforms.
\li Qt Console Application
Use a single main.cpp file
\li HTML5 Application
Use a QtWebKit view to design the user interface and HTML5 and
C++ code to implement the application logic
\li Qt Quick UI
Use a single QML file that contains the main view. You can
review Qt Quick UI projects in a \l{Previewing QML Files}
{preview tool} and you need not build
them. You do not need to have the development environment
installed on your computer to create and run this type of
projects
\endlist
\li Libraries
\list
\li C++ Library
Shared or static C++ library based on qmake
\li Qt Quick 1 Extension Plugin
C++ plugin that makes it possible to offer extensions that can
be loaded dynamically into Qt Quick 1 applications by using the
QDeclarativeEngine class
\li Qt Quick 2 Extension Plugin
C++ plugin that makes it possible to offer extensions that can
be loaded dynamically into Qt Quick 2 applications by using the
QQmlEngine class
\li \QC Plugin
\endlist
\li Other Projects
\list
\li Qt Unit Test
Qt unit tests for features or classes
\li Qt Custom Designer Widgets
Custom \QD widget or widget collection
\li Empty Qt Project
Empty Qt project that is based on qmake but does not use any
default classes
\li Subdirs Project
Subprojects that enable you to structure your qmake projects as
a tree hierarchy
\li Code Snippet
Creates a qmake project from a code snippet. When fixing bug
reports that contain a code snippet, you can place the code
snippet into a project to compile and check it.
\endlist
\li Non-Qt Projects
\list
\li Plain C or C++ Project
Plain C or C++ project that uses qmake but does not use the Qt
library
\li Plain C or C++ Project (CMake Build)
Plain C or C++ project that uses CMake but does not use the Qt
library
\li Plain C or C++ Project (Qbs Build)
Plain C or C++ project that uses Qbs but does not use the Qt
library. This project type is listed if the experimental Qbs
plugin has been enabled in \gui Help > \gui {About Plugins}.
\endlist
\li Import Project
\list
\li Project from version control
Import a project from a supported version control system. For more
information on how version control systems are integrated in
\QC, see \l{Using Version Control Systems}
\li Import Existing Project
Import an existing project that does not use any of the supported
build systems: qmake, CMake, or Autotools. This enables you to use
\QC as a code editor
\endlist
\endlist
To create a new project, select \gui File > \gui{New File or Project} and
select the type of your project. The contents of the wizard dialogs depend
on the project type and the \l{glossary-buildandrun-kit}{kits} that you select in the
\gui {Kit Selection} dialog. Follow the instructions of the wizard.
For examples of creating different types of projects, see
\l{Tutorials}.
For more information about creating Qt Quick projects, see
\l {Creating Qt Quick Projects}.
To change the location of the project directory, and to specify settings
for building and running projects, select \gui{Tools} > \gui{Options} >
\gui{Build & Run} > \gui{General}.
To specify build and run settings for different target platforms,
select \gui Projects.
\section1 Adding Files to Projects
You can use wizards also to add individual files to your projects.
You can create the following types of files:
\list
\li C++
C++ class, source, or header files that you can use to write the
application logic in both Qt Quick projects and
Qt widget based projects
\li Qt
\list
\li \QD forms and \QD form classes, which specify parts of user
interfaces in Qt widget based projects
\li Qt resource files, which allow you to store binary files in the
application executable
\li QML files, which specify items in Qt Quick projects.
\gui {Qt Quick 1} creates a QML file that imports Qt Quick 1.1 and
\gui {Qt Quick 2} creates a QML file that imports Qt Quick 2.0.
Select \gui {Qt Quick 1} to add files to a Qt Quick 1 application
and \gui {Qt Quick 2} to add files to a Qt Quick 2 application.
\li JavaScript files that you can use to write the application logic in
Qt Quick projects
\endlist
\li GLSL
GLSL files that define fragment and vertex shaders in both Qt Quick
projects and Qt widget based projects
\li General
\list
\li Text files
\li Scratch buffers that use temporary files. You can create this
type of files for temporarily storing information that you do
not intend to save
\endlist
\li Python
Python class and source files that you can use to create Python
classes and scripts with UTF-8 encoding.
\endlist
\section2 Creating C++ Classes
The \gui {C++ Class Wizard} allows you to create a C++ header and source
file for a new class that you can add to a C++ project. Specify the class
name, base class, and header and source files for the class.
The wizard supports namespaces. To use a namespace, enter a qualified
class name in the \gui {Class name} field. For example:
MyNamespace::MySubNamespace::MyClass.
\image qtcreator-cpp-class-wizard.png "Enter Class Name dialog"
The names of the header and source file are based on the class name. To
change the default suffix of a file, select \gui Tools > \gui Options >
\gui {C++} > \gui {File Naming}.
You can create your own project and class wizards. For more information,
see \l{Adding New Custom Wizards}.
\section2 Creating OpenGL Fragment and Vertex Shaders
Qt provides support for integration with OpenGL implementations on all
platforms, which allows you to display hardware accelerated 3D graphics
alongside a more conventional user interface. For more information, see
\l{Qt Gui#opengl-and-opengl-es-integration}{OpenGL and OpenGL ES integration}.
You can use the QOpenGLShader class to compile OpenGL shaders written in the
OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language
(GLSL/ES). QOpenGLShader and QOpenGLShaderProgram shelter you from the
details of
compiling and linking vertex and fragment shaders.
You can use \QC code editor to write fragment and vertex shaders
in GLSL or GLSL/ES. The code editor provides syntax highlighting and code
completion for the files.
\image qtcreator-new-opengl-file.png "New OpenGL file wizard"
\section2 Displaying Additional File Types in Projects Pane
\QC determines whether to display files from the project folder
in the \gui Projects pane depending on the file type (.pro, .pri, .cpp,
.h, .qrc, and so on). To display other types of files, edit the
project file. Add filenames as values of the \c {OTHER_FILES} variable.
You can also use wildcards.
For example, the following code specifies that text files are displayed
in the \gui Projects pane:
\code
OTHER_FILES += *.txt
\endcode
This also makes the files available in the \gui Locator.
\section1 Adding Subprojects to Projects
In addition to Qt libraries, you can link your application to other
libraries, such as system libraries or your own libraries. Further, your
own libraries might link to other libraries. To be able to compile your
project, you must add the libraries to your project. This also enables
code completion and syntax highlighting for the libraries.
The procedure of adding a library to a project depends on the build
system that you use.
When you create a new project, you can add it to another project as a
subproject in the \gui{Project Management} dialog. However, the root project
must specify that qmake uses the \c subdirs template to build the project.
To create a root project, select \gui {File > New File or Project >
Other Project > Subdirs Project > Choose}.
On the \gui Summary page, select \gui {Finish & Add Subproject} to create
the root project and to add another project, such as a C++ library.
The wizard creates a project file (.pro) that defines a \c subdirs template
and the subproject that you add as a value of the \l{Variables#subdirs}
{SUBDIRS variable}. It also adds all the necessary files for the subproject.
To add more subprojects, right-click the project name in the \gui Projects
pane, and select \gui {New Subproject} in the context menu.
To remove subprojects, right-click the project name in the \gui Projects
pane, and select \gui {Remove Subproject} in the context menu.
To specify dependencies, use the \gui{Add Library} wizard. For more
information, see \l{Adding Libraries to Projects}.
\section1 Related Topics
\list
\li \l{Opening Projects}
\li \l{Adding Libraries to Projects}
\li \l{Adding New Custom Wizards}
\li \l{Using Other Build Systems}
\endlist
*/
|