Newer
Older
Code refactoring is the process of changing the code without modifying the
existing functionality of your application. By refactoring your code you
can:
\list
\o Improve internal quality of your application
\o Improve performance and extensibility
\o Improve code readability and maintainability
\o Simplify code structure
\endlist
To find the use of a specific symbol in your project:
\list 1
\o In the editor place the cursor on the symbol and select \gui Tools

Rohan Shetty
committed
> \gui C++ > \gui{Find Usages} or press
\key Ctrl+Shift+U.
Qt Creator looks for the symbol in the following locations:
\list
\o Files listed as a part of the project
\o Files directly used by the project files (for example, generated
files)
\o Header files of used frameworks and libraries
\endlist
\o The \gui{Search Results} pane opens and shows the location and
number of instances of the symbol in the current project.
\image qtcreator-refactoring-find.png
\endlist
You can browse the search results in the following ways:
\list
\o To go directly to an instance, double-click the instance in the
\gui{Search Results} pane.
\o To move between instances, click
\inlineimage qtcreator-forward.png
and
\inlineimage qtcreator-back.png
in the \gui{Search Results} pane.
\o To expand and collapse the list of all instances, click
\inlineimage qtcreator-expand.png
.
\o To clear the search results, click \inlineimage qtcreator-clear.png
.
\endlist
\section1 Renaming Symbols
To rename a specific symbol in your project:
\o In the editor, place the cursor on the symbol you would like to
change and select \gui Tools > \gui C++ >

Rohan Shetty
committed
\gui{Rename Symbol Under Cursor} or press \key Ctrl+Shift+R.
The \gui{Search Results} pane opens and shows the location and
number of instances of the symbol in the current project.
\image qtcreator-refactoring-replace.png
\o To replace all selected instances, enter the name of the new symbol
in the \gui{Replace with} text box and click \gui Replace.
To omit an instance, uncheck the check-box next to the instance.
\note This action replaces all selected instances of the symbol in
all files listed in the \gui{Search Results} pane. You cannot
undo this action.

Kavindra Palaraja
committed

Leena Miettinen
committed
\note Renaming local symbols does not open the \gui{Search Results} pane.
The instances of the symbol are highlighted in code and you can edit the
symbol. All instances of the local symbol are changed as you type.
*/

Kavindra Devi Palaraja
committed

Kavindra Palaraja
committed
/*!
\contentspage index.html
\previouspage creator-editor-locator.html
\page creator-project-managing.html
\nextpage creator-project-creating.html
\title Managing Projects

Leena Miettinen
committed
One of the major advantages of Qt Creator is that it allows a team of
developers to share a project across different development platforms with a common
tool for development and debugging.
The recommended way to build a project is to use a \l{Using Version Control Systems} {version control system}.
Store and edit only project source files and the .pro and .pri files (for qmake)
or CMakeLists.txt and *.cmake files (for CMake). Do not store
files generated by the build system or Qt Creator, such as makefiles,
.pro.user, and object files. Other approaches are possible,
but we recommend that you do not use network resources, for example.
Qt Creator allows you to specify separate \l{Build Settings} {build settings}

Leena Miettinen
committed
for each development platform. By default, \l{glossary-shadow-build}{shadow builds} are used to

Leena Miettinen
committed
keep the build specific files separate from the source.
You can create separate versions of project files to keep platform-dependent
code separate. You can use qmake
\l{http://qt.nokia.com/doc/4.2/qmake-tutorial.html#adding-platform-specific-source-files}{scopes}
to select the file to process depending on which platform qmake is run on.
Items such as open files, breakpoints, and watches are stored in
\l{Managing Sessions}{sessions}. They are not considered to be part of the
information shared across platforms.
Qt Creator is integrated with cross-platform systems for build automation:
qmake and CMake. In addition, you can import generic projects that do not use qmake
or CMake, and specify that Qt Creator ignores your build system.
\list
\o To work with \bold{qmake projects}, open a \c .pro file. For more
information, see \l{Setting Up a qmake Project}.
\o To work with \bold{CMake projects} you need to have CMake version
2.8.0 or later installed. For more information, see
\l{Setting Up a CMake Project}.

Leena Miettinen
committed
\o To work with \bold{generic projects}, specify which files belong to
your project and which include directories or defines you want to pass
to your compiler. For more information, see
To change the location of the project directory, and to make changes in
the build and run settings, select \gui{Tools} > \gui{Options...} >
\gui{Projects} > \gui{General}.
Through external libraries Qt Creator can support code completion and
syntax highlighting for external libraries as if they were a part of the
current project or the Qt library.
The procedure of adding a library to a project depends on the type of
project, which influences the build system used.
\list
\o For information on adding external libraries to qmake projects, see
\l{Adding External Libraries to a qmake Project}.
\o For information on adding external libraries to CMake projects, see
\l{Adding External Libraries to a CMake Project}.
\endlist
*/
/*!
\contentspage index.html
\previouspage creator-project-managing.html
\page creator-project-creating.html
\nextpage creator-project-qmake.html
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
You use wizards to create and import several types of projects and files, such
as Qt GUI or console applications and Qt Quick applications. You can also use
wizards to add individual files to your projects. For example, you can create
the following types of files:
\list
\o Qt resource files, which allow you to store binary files in the
application executable
\o \QD forms and Qt QML files, which specify parts of application user
interfaces
\o C++ class, source, or header files
\endlist
The wizards prompt you to enter the settings needed
for that particular type of project and create the necessary files for you.
\image qtcreator-new-project.png
\section1 Using Project Wizards

Leena Miettinen
committed
\o Select \gui File > \gui{New File or Project} and select the type of your

Leena Miettinen
committed
The contents of the following dialogs depend on the project type.
Follow the instructions of the wizard.

Leena Miettinen
committed
This example uses \gui {Qt Gui Application}.
\o Name the project and set its path. To select the path from a

Leena Miettinen
committed
directory tree, click \gui Browse.
Avoid using spaces and special characters in the project name and
path.
\image qtcreator-intro-and-location.png
\o Specify the name of the class you want to create and using the
drop-down menu select its base class type.
Note that the \gui{Header file}, \gui{Source file} and
\gui{Form file} fields are automatically updated as you name your
class.
\image qtcreator-class-info.png
\o Review the project settings.

Leena Miettinen
committed
To create the project, click \gui Finish.
\image qtcreator-new-project-summary.png
\endlist
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
\section1 Adding New Project Wizards
If you have a team working on a large application or several applications,
you might want to standardize the way the team members create projects
and classes.
You can use the wizard templates in the \c {share/qtcreator/templates/wizards}
folder to create your own project and class wizards. Qt Creator looks in the
folder and adds all wizards defined in wizard.xml files to the \gui New dialog
that opens when you select \gui {File > New File or Project}.
In a project wizard, you can specify the files needed in a project.
You can add wizard pages to allow developers to specify settings for the
projcet.
In a class wizard, you can allow developers to specify the class name, base
class, and header and source files for the class.
To see how this works, rename wizard_example.xml as wizard.xml in the helloworld
and listmodels folders. After you restart Qt Creator, the \gui {Custom Classes}
and \gui {Custom Projects} categories appear in the \gui New dialog.
\image qtcreator-custom-project-wizards.png "The New dialog with custom projects and classes"
\section2 Creating Project Wizards
To create a project wizard:
\list 1
\o Make a copy of the \c {share/qtcreator/templates/wizards/helloworld} or
\c {share/qtcreator/templates/wizards/listmodel} folder.
\o Modify the wizard_example.xml file.
\o The following code determines the type of the wizard and its place
in the \gui New dialog:
\code
<wizard version="1" kind="project"
class="qt4project" firstpage="10"
id="A.HelloWorld" category="B.CustomProjects">
\endcode
\list
\o \c version is the version of the file contents. Do not modify this value.
\o \c kind specifies the type of the wizard: \c project or \c class.
\o \c class specifies the type of the project. Currently the only available
type is \c qt4project, which specifies a Qt console project.
\o \c firstpage specifies the place of the new page in the standard project
wizard. The value 10 ensures that the custom page appears after the standard
pages, as the last page of the wizard.
\o \c id is the unique identifier for your wizard. The letter specifies the
position of the wizard within the \c category. The HelloWorld wizard appears
as the first wizard in the second category in the \gui New dialog.
\o \c category is the category in which to place the wizard in the list.
The letter specifies the position of the category in the list in the \gui New
dialog.
\endlist
\o The following code specifies the icon and text that appear in the \gui New
dialog:
\code
<icon>console.png</icon>
<description>Creates a hello-world-project with custom message.</description>
<description xml:lang="de">Erzeugt ein Hello-Welt-Projekt mit einer Nachricht.</description>
<displayName>Hello World</displayName>;
<displayName xml:lang="de">Hallo Welt</displayName>;
<displayCategory>Custom Projects</displayCategory>
<displayCategory xml:lang="de">Benutzerdefinierte Projekte</displayCategory>
\endcode
\list
\o \c icon appears next to the \c displayName.
\o \c description appears at the bottom of the \gui New dialog when you
select the display name.
\o \c displayName appears in the \gui New dialog, under the
\c displayCategory.
You can add translations as values for the text elements. Specify the target
language as an attribute for the element. Use locale names (QLocale).
For example, \c {xml:lang="de"}.
\endlist
\o The following code specifies the files to add to the project:
\code
<files>
<file source="main.cpp"/>
<file source="project.pro" target="%ProjectName%.pro"/>
\endcode
\list
\o \c source specifies the file to copy to the project. The files must be
located in the wizard folder.
\o \c target specifies the new filename for the file. The \c {%ProjectName%}
variable is replaced with the string that users specify in the \gui Name
field on the first page of the wizard.
\endlist
\o The following code creates a page that specifies settings for the project:
\code
<!-- Create a 2nd wizard page with parameters -->
<fieldpagetitle>Hello World Parameters</fieldpagetitle>
<fieldpagetitle xml:lang="de">Hallo Welt Parameter</fieldpagetitle>
<fields>
<field mandatory="true" name="MESSAGE">
<fieldcontrol class="QLineEdit" validator='^[^"]+$' defaulttext="Hello world!" />
<fielddescription>Hello world message:</fielddescription>
<fielddescription xml:lang="de">Hallo-Welt-Nachricht:</fielddescription>
</field>
</fields>
\endcode
\list
\o \c fieldpagetitle specifies the title of the page.
\o \c field specifies whether the field is mandatory (\c true or \c false).
You can use the value of the \c name field as a variable in other files (for
example, \c {%MESSAGE%}.
\o \c fieldcontrol specifies the field. \c class specifies the field type.
You can use interface objects from the QWidget class to create fields. This
example uses QLineEdit to create an input field.
\o \c validator specifies a regular expression to check the characters allowed in
the field.
\o \c defaulttext specifies text that appears in the field by default.
\o \c fielddescription specifies the field name that appears on the wizard page.
\endlist
\endlist
\section2 Creating Class Wizards
The widget.xml file for a class wizard is very similar to that for a project
wizard. The differences are discussed below.
To create a class wizard:
\list 1
\o The following code specifies settings for the wizard:
\code
<wizard version="1" kind="class" id="A.ListModel" category="B.CustomClasses">
<description>Creates a QAbstractListModel implementation.</description>
<description xml:lang="de">Erzeugt eine Implementierung von QAbstractListModel.</description>
<displayName>QAbstractListModel implementation</displayName>
<displayName xml:lang="de">Implementierung von QAbstractListModel</displayName>
<displayCategory>Custom Classes</displayCategory>
<displayCategory xml:lang="de">Benutzerdefinierte Klassen</displayCategory>
\endcode
For more information about the elements and their values, see
\l {Creating Project Wizards}.
\o The following code specifies the files to add to the project:
\code
<files>
<file source="listmodel.cpp" target="%ClassName:l%.%CppSourceSuffix%"/>
<file source="listmodel.h" target="%ClassName:l%.%CppHeaderSuffix%"/>
</files>
\endcode
Here, \c target contains the following variables that are used to construct
the filename:
\list
\o \c {%ClassName:l%} is replaced with the value of the \c ClassName field.
The modifier \c l converts the string to lower case, to observe Qt
conventions.
\o \c {%CppSourceSuffix%} is replaced by the default source suffix, which
is defined in Qt Creator in \gui {Tools > Options > C++ > File Naming}.
For example, if users enter \bold MyClass, the filename becomes myclass.cpp
when the project is created.
\o \c {%CppHeaderSuffix%} is replaced by the default header suffix, which
is also defined in \gui {File Naming}. Here, the filename would
become myclass.h.
\endlist
\o The following code creates a page that allows users to select the class
name, base class, and header and source files for the class:
\code
<!-- Create parameter wizard page -->
<fieldpagetitle>ListModel parameters</fieldpagetitle>
<fieldpagetitle xml:lang="de">Parameter des ListModel</fieldpagetitle>
<fields>
<field name="ClassName">
<fieldcontrol class="QLineEdit" validator="^[a-zA-Z0-9_]+$" defaulttext="MyListModel" />
<fielddescription>Class name:</fielddescription>
<fielddescription xml:lang="de">Klassenname:</fielddescription>
</field>
<field name="Datatype">
<fieldcontrol class="QComboBox" combochoices="QString,int" defaultindex="0" />
<fielddescription>Data type:</fielddescription>
<fielddescription xml:lang="de">Datentyp:</fielddescription>
</field>
</fields>
\endcode
In addition to QLineEdit, QComboBox is used in the class wizard to create
a field. \c combochoices specifies the options in the combobox and
\c defaultindex specifies that QString is the default value.
\endlist
\previouspage creator-project-creating.html
\page creator-project-qmake.html
\nextpage creator-project-cmake.html

Leena Miettinen
committed
The qmake tool helps simplify the build process for development projects
across different platforms. qmake automates the generation of makefiles
so that only a few lines of information are needed to create each makefile.
qmake can be used for any software project, whether it is written in Qt or not.
The qmake tool generates a makefile based on the information in a project
file that is generated by Qt Creator. It can generate makefiles for MinGW,
Microsoft Visual studio, and CSL ARM in Windows, and GNU Compiler Collection
(GCC) in Linux and Mac OS X.
For more information about qmake, see the
\l{http://qt.nokia.com/doc/4.2/qmake-manual.html}{qmake Manual}.
\section1 Selecting the Qt Version
Qt Creator allows you to have multiple versions of Qt installed on
your computer and use different versions for each of your projects.
If Qt Creator finds \bold qmake in the \c{PATH} environment variable, it uses
that version. The \l{glossary-system-qt}{ qmake version of Qt} is referred
to as \bold{Qt in PATH}. If you intend to use only one version of Qt and it
is already in the \c{PATH} and correctly set up for command line use, you do
not need to manually configure your Qt version.
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
\note By default, Qt Creator compiles projects with the
\l{glossary-default-qt}{default Qt version}. For information on how to
override this setting, see \l{Build Settings}.
\section2 Windows
To add a Qt version for \bold MinGW:
\list 1
\o Select \gui Tools > \gui Options... > \gui Qt4 >
\gui{Qt Versions}.
\o Click \inlineimage qtcreator-windows-add.png
and enter the name of the version in \gui{Version Name} field.
\o Enter the qmake binary path in the \gui{qmake Location}.
\o Enter the MinGW installation path in the \gui{MinGW Directory}.
\image qtcreator-qt4-qtversions-win-mingw.png
\endlist
To add a Qt version for a \bold{Microsoft Visual C++} compiler:
\list 1
\o Select \gui Tools > \gui Options... > \gui Qt4 >
\gui{Qt Versions}.
\o Qt Creator automatically sets the correct environment variables for
compilation. Select the internal version number of the installed
Microsoft Visual C++ tool chains using the \gui MSVC drop-down
box:
\list
\o \bold 7.1 for Visual Studio 2003
\o \bold 8.0 for Visual Studio 2005
\o \bold 9.0 for Visual Studio 2008
\endlist
\note If you are using the
\bold{Windows SDK for Windows Server 2008}, Qt Creator identifies
it as version 9.0.
\image qtcreator-qt4-qtversions-win-msvc.png
\endlist
If you are using \bold{Qt for Symbian} and your S60 SDK is registered
with devices.exe, Qt Creator automatically detects the Qt version. To add a
Qt for Symbian version:
\list 1
\o Select \gui Tools > \gui Options... > \gui Qt4 >
\gui{Qt Versions}.
\o Select the \gui{S60 SDK} you want the Qt Creator to use.
\image qtcreator-qt4-qtversions-win-symbian.png
\o To build an application for your device using GCCE, enter the path
to the \bold{CSL ARM Toolchain} directory in
\gui{CSL\\GCCE Directory}.
You do not need to specify this path if the compiler is included in
the \c{PATH} environment variable.
\o To build an application for the emulator (WINSCW toolchain), enter
the path to your Carbide C++ installation directory in
\gui{Carbide Directory}.
\note You need to have Carbide C++ version 2.0 or later installed.
\section2 Compiling Projects With Linux
To compile a project in Qt Creator, Linux uses GNU Compiler Collection
(GCC). Intel Compiler Collection (ICC) is supported as a drop-in
replacement for GCC.

Kavindra Devi Palaraja
committed
To add a Qt version:
\list 1
\o Select \gui Tools > \gui Options... > \gui Qt4 >
\gui{Qt Versions}.
\o Click \inlineimage qtcreator-linux-add.png
and enter the name of the version in \gui{Version Name}.
\o Enter the path to the qmake binary in \gui{Path to qmake}.
\endlist
\section2 Compiling Projects With Mac OS X
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
To compile a project in Qt Creator, Mac OS X uses GNU Compiler Collection
(GCC), which is part of Xcode.
To add a Qt version:
\list 1
\o Select \gui{Qt Creator} > \gui Preferences... > \gui{Qt Versions}.
\o Click \inlineimage qtcreator-macosx-add.png
and enter the name of the version in \gui{Version Name}.
\o Enter the path to the qmake binary in \gui{Path to qmake}.
\image qtcreator-qt4-qtversions.png
\endlist
\section1 Setting Up a Project
To view and modify the settings for currently open projects, switch to the
\gui Projects mode by pressing \key Ctrl+4.
\image qtcreator-projectpane.png
The project pane consists of the following tabs:
\list
\o Targets
\o Editor Settings
\o Dependencies
\endlist
Use the \gui Build and \gui Run buttons on *Desktop* to switch between
the build and run settings for the active project.
If you have multiple projects open in Qt Creator, use
\gui{Select a Project} option at the top to navigate between different
project edits.
\section1 Build Settings
Different build configurations allow you to quickly switch between
different build settings. By default, Qt Creator creates \bold debug
and \bold release build configurations. The \bold{debug} and \bold{release}
build configurations both use the
\l{glossary-default-qt}{default Qt version}.
\image qtcreator-ppbuildsettings.png
\section2 Adding and Removing Build Configurations
To add a new build configuration, click \gui Add and select the type of
configuration you would like to add. You can add as many build
configurations as you need.
To delete the build configuration currently selected, click \gui Remove.
\section2 Editing Build Configurations
To edit a build configuration:
\list 1
\o Select the build configuration you want to edit in
\gui{Edit Build Configuration}.
\o In section \gui General, you can specify:
\o The \l{glossary-project-qt}{Qt version} you want to use to
build your project. For more information, see
\l{Selecting the Qt version}.
\o The toolchain required to build the project.

Leena Miettinen
committed
\o By default, projects are built in a separate directory
from the source directory, as \l{glossary-shadow-build}{shadow builds}.
This keeps the files generated for each target platform separate.
\note Shadow building is not supported by the Symbian build system.
Also, shadow building on Windows is not supported for Maemo.
If you only build for one target platform, you can deselect
the \gui{Shadow Build} checkbox.
\endlist
The build system of Qt Creator is built on qmake and make. In
\gui{Build Steps} you can change the settings for qmake and make. Qt
Creator runs the make command using the Qt version defined for the current
build configuration.
You can use the cleaning process to remove intermediate files. This process
might help you to fix obscure issues during the process of building a
project.
You can define the cleaning steps for your builds in the \gui{Clean Steps}:
\list
\o To add a clean step using make or a custom process, click
\gui{Add clean step} and select the type of step you want to add.
By default, custom steps are disabled. Activate custom steps by
checking the \gui{Enable Custom Process Step} check-box.
\o To remove a clean step, click \gui{Remove clean step} and select the
step you want to remove.
\o To change the order of steps, click
\inlineimage qtcreator-movestep.png
.
\endlist
You can specify the environment you want to use for building in the
\bold{Build Environment} section. By default, the environment in which Qt
Creator was started is used and modified to include the Qt version.
Depending on the selected Qt version, Qt Creator automatically sets the
necessary environment variables. You can edit existing environment
variables or add, reset and unset new variables based on your project
requirements.
Qt Creator automatically creates run configurations for your project.
These run configurations derive their executable from the parsed .pro
files. You can also create custom executable run configurations where you
can set the executable to be run.

Kavindra Devi Palaraja
committed
\section1 File Encoding
To define the default file encoding, select the desired encoding in the
\gui{Editor Settings}. By default, the Qt Creator uses the file encoding
used by your system.
\section1 Dependencies
If you have multiple projects loaded in your session, you can define the
dependencies between them. Inter-project dependencies affect the build
order of your projects.
\note Inter-project dependencies are unrelated inside a qmake
To define the dependencies between projects:
\list 1
\o Select the project for which you want to configure dependencies.
\o Check the checkboxes in the Dependencies section to select other
projects as dependencies.
\endlist
\section1 Adding External Libraries to a qmake Project
Through external libraries Qt Creator can support code completion and
syntax highlighting as if they were part of the current project or the Qt
library.
To add an external library:
\list 1
\o Open your project file (.pro) using the \gui Projects pane.
\o Follow the instructions at \l{http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries}

Kavindra Devi Palaraja
committed
Syntax completion and highlighting work once your project successfully
builds and links against the external library.

Leena Miettinen
committed
\page creator-getting-started.html
\nextpage creator-writing-program.html
\title Getting Started
This section contains examples that illustrate how to use Qt Creator and the
integrated design tools, \QD and \QMLD, to create simple applications:
\list

Leena Miettinen
committed
\o \l{Creating a Qt C++ Application}
\o \l{Creating a Qt Quick Application}

Leena Miettinen
committed
\endlist
*/
/*!
\contentspage index.html
\previouspage creator-writing-program.html
\page creator-qml-application.html

Leena Miettinen
committed
\title Creating a Qt Quick Application

Leena Miettinen
committed

Leena Miettinen
committed
\note This tutorial assumes that you are familiar with the \l {http://qt.nokia.com/doc/4.7-snapshot/declarativeui.html}
{QML declarative language}.

Leena Miettinen
committed
This tutorial describes how to use Qt Creator to create a small animated

Leena Miettinen
committed
Qt Quick application, Hello World.

Leena Miettinen
committed
\image qmldesigner-helloworld.png "Hello World"
\section1 Creating the Hello World Project
\note Create the project with the \gui{Help} mode active so that you can follow
these instructions while you work.
\list 1

Leena Miettinen
committed
\o Select \gui{File > New File or Project > Qt Quick Project > Qt QML Application > OK}.

Leena Miettinen
committed
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
\image qmldesigner-new-project.png "New File or Project dialog"
The \gui{Introduction and Project Location} dialog opens.
\image qmldesigner-new-project-location.png "Introduction and Project Location dialog"
\o In the \gui{Name} field, type \bold {Hello World}.
\o In the \gui {Create in} field, enter the path for the project files. For example,
\c {C:\Qt\examples}, and then click \gui{Next}.
The \gui{Project Management} dialog opens.
\image qmldesigner-new-project-summary.png "Project Management dialog"
\o Review the project settings, and click \gui{Finish} to create the project.
\endlist
The HelloWorld project now contains the following files:
\list
\o HelloWorld.qmlproject
\o HelloWorld.qml
\endlist
\image qmldesigner-new-project-contents.png "HelloWorld project contents"
The .qmlproject file defines that all QML, JavaScript, and image files in
the project folder belong to the project. The .qml file contains some example
code that specifies the screen size (200x200) and a label that contains
the text \bold {Hello World}.
\section1 Designing the User Interface
\list

Leena Miettinen
committed
\o In the \gui{Edit} mode, double-click the HelloWorld.qml file in
the \gui{Projects} pane to open it in the visual \QMLD editor.

Leena Miettinen
committed

Leena Miettinen
committed
\o Click \gui{Edit} to edit the screen size in the code editor.
To set the screen size to that of some Symbian devices in portrait
mode, for example, change the \c width to \bold 240 and \c height to \bold 320.

Leena Miettinen
committed

Leena Miettinen
committed
\image qmldesigner-helloworld-screen-size.png "Setting the screen size"
\o Click \gui{Design} to design the UI in the visual editor.

Leena Miettinen
committed
\o Drag and drop a \gui {Rectangle} from the \gui {Library} pane to the
scene.

Leena Miettinen
committed
\image qmldesigner-helloworld-widget-add.png "Add component to Hello World"

Leena Miettinen
committed

Leena Miettinen
committed
\o Edit the \gui {Properties} of the component to turn it into a red ball:

Leena Miettinen
committed
\list
\o In the \gui {Colors} section, click the color picker to select a red

Leena Miettinen
committed
color.
\o In the \gui {Radius} field, use the slider to set the radius value
to \bold 50.

Leena Miettinen
committed
\image qmldesigner-helloworld-widget-edit.png "Edit the component"

Leena Miettinen
committed
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
\endlist
\o To create a blue ball, press \key {Ctrl+C} and \key {Ctrl+V} to copy
and paste the red one, and then change its color to blue.
\image qmldesigner-helloworld-base-state.png "Hello World first view"
The first view of your application is now ready.
\note You can use graphical design tools to create nice images and
copy them to the projects folder to display them in the \gui {Library}
pane in \gui {Resources}.
\o In the \gui State pane, click the plus sign to add another view, or \e state
to the application.
\o Modify the state by dragging and dropping the widgets to switch their
places.
\image qmldesigner-helloworld-state1.png "Hello World second view"
\endlist
\section1 Animating the Scene
Animate the scene so that the widgets appear to switch places
on the screen.
\list 1
\o Click \gui {Edit} to open HelloWorld.qml in the code editor.
\o Add the following code to create a transition:
\code
transitions: [
Transition {
NumberAnimation { properties: "x, y"; duration: 500 }
}
\endcode
\note The code editor completes the code for you as you type.
\o Click the \inlineimage qtcreator-run.png
button to check that the application can be built and run.
\endlist
\section1 Adding Interaction
Add interaction to the scene to allow users to click on the screen to start
the animation.
\list 1
\o Click \gui{Design} to open HelloWorld.qml in the visual editor.
\o Drag and drop a \gui {Mouse Area} from the \gui {Library} to the scene.
\o In the \gui {Properties} pane, \gui {Geometry} tab, click the

Leena Miettinen
committed
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
\inlineimage qmldesigner-anchor-fill-screen.png
button to make the mouse region cover the whole screen.
\o In the code editor, use data binding to add a \c when statement to
the states sections, as illustrated by the following code:
\code
states: [
State {
name: "State1"
when: mousearea1.pressed
\endcode
\endlist
\section1 Buiding and Running the Application
\list 1
\o Press \key {Ctrl+R} to build and run the application.
\o Click the screen and keep the mouse button pressed down to run the
animation.
\endlist

Leena Miettinen
committed
\note In the \gui {QML Viewer}, select \gui {Skin} and select a mobile device
type to view the application as on a mobile device.

Leena Miettinen
committed
*/
/*!
\contentspage index.html
\previouspage creator-getting-started.html
\page creator-writing-program.html
\nextpage creator-qml-application.html

Leena Miettinen
committed
\title Creating a Qt C++ Application
\note This tutorial assumes that you have experience in writing basic Qt

Leena Miettinen
committed
applications, using \QD to design user interfaces and using the Qt

Leena Miettinen
committed
This tutorial describes how to use Qt Creator
to create a small Qt application, Text Finder. It is a simplified version of the
QtUiTools \l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder}
example.
\image qtcreator-textfinder-screenshot.png
\section1 Setting Up Your Environment

Leena Miettinen
committed
Qt Creator automatically detects whether the location of Qt is in your \c PATH variable.
If you have installed several Qt versions, follow the
instructions in \l{Selecting the Qt version} to set the Qt path.

Leena Miettinen
committed
\section1 Creating the Text Finder Project

Leena Miettinen
committed
\note Create the project with the \gui{Help} mode active so that you can follow
these instructions while you work.

Leena Miettinen
committed
\list 1
\o Select \gui{File > New File or Project > Qt Application Project > Qt Gui
Application > OK}.

Leena Miettinen
committed
\image qtcreator-new-project.png "New File or Project dialog"

Leena Miettinen
committed

Leena Miettinen
committed
The \gui{Introduction and Project Location} dialog opens.

Leena Miettinen
committed

Leena Miettinen
committed
\image qtcreator-intro-and-location.png "Introduction and Project Location dialog"

Leena Miettinen
committed

Leena Miettinen
committed
\o In the \gui{Name} field, type \bold {TextFinder}.
\o In the \gui {Create in} field, enter the path for the project files. For example,
\c {C:\Qt\examples}, and then click \gui{Next}.

Leena Miettinen
committed

Leena Miettinen
committed
The \gui{Select Required Qt Versions} dialog opens.
\image qtcreator-new-project-qt-versions.png "Select Required Qt Versions dialog"

Leena Miettinen
committed
\o Click \gui{Next} to use the Qt version set in the path in your project.

Leena Miettinen
committed
The \gui{Class Information} dialog opens.