| 1 |
/**************************************************************************** |
| 2 |
** |
| 3 |
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). |
| 4 |
** All rights reserved. |
| 5 |
** Contact: Nokia Corporation (qt-info@nokia.com) |
| 6 |
** |
| 7 |
** This file is part of the documentation of the Qt Toolkit. |
| 8 |
** |
| 9 |
** $QT_BEGIN_LICENSE:FDL$ |
| 10 |
** GNU Free Documentation License |
| 11 |
** Alternatively, this file may be used under the terms of the GNU Free |
| 12 |
** Documentation License version 1.3 as published by the Free Software |
| 13 |
** Foundation and appearing in the file included in the packaging of |
| 14 |
** this file. |
| 15 |
** |
| 16 |
** Other Usage |
| 17 |
** Alternatively, this file may be used in accordance with the terms |
| 18 |
** and conditions contained in a signed written agreement between you |
| 19 |
** and Nokia. |
| 20 |
** |
| 21 |
** |
| 22 |
** |
| 23 |
** |
| 24 |
** $QT_END_LICENSE$ |
| 25 |
** |
| 26 |
****************************************************************************/ |
| 27 |
|
| 28 |
/*! |
| 29 |
\page gettingstarted-develop.html |
| 30 |
\title Develop with Qt |
| 31 |
\ingroup gettingstarted |
| 32 |
|
| 33 |
\div {class = "indexboxcont indexboxbar"} |
| 34 |
Developing a Qt application involves many different steps and stages. From |
| 35 |
configuring Creator to distributing binaries to different platforms, Qt provides |
| 36 |
many options along the way. |
| 37 |
\image quick_screens.png |
| 38 |
\enddiv |
| 39 |
|
| 40 |
\div {class = "indexboxcont indexboxbar normallist"} |
| 41 |
\keyword qt-creator-configure-target |
| 42 |
\section1 Configuring Qt and Creator Targets |
| 43 |
Qt and Creator are configurable to compile applications on many platform targets |
| 44 |
and multiple platforms. |
| 45 |
|
| 46 |
\section2 Configuring Creator for Qt Development: |
| 47 |
Creator is the integrated development environment for developing Qt applications. |
| 48 |
Creator encompasses every step of application development from interface design |
| 49 |
to application testing and deployment. |
| 50 |
\list |
| 51 |
\o \l{external: Creating Qt Projects in Creator}{Creating Qt Projects} |
| 52 |
\o \l{external: Building and Running Applications in Creator}{Building and Running Applications} |
| 53 |
\list |
| 54 |
\o \l{external: Set Compiler Targets in Creator}{Targets} - edit and set compiler targets |
| 55 |
\o \l{external: Build Settings in Creator}{Build Settings} - edit and set build configurations |
| 56 |
\o \l{external: Run Settings in Creator}{Run Settings} - edit and set application run settings |
| 57 |
\endlist |
| 58 |
\o \l{external: Setting Up Development Environment for Symbian}{Setting Up Development Environment for Symbian} |
| 59 |
\o \l{external: Setting Up Development Environment for Maemo}{Setting Up Development Environment for Maemo} |
| 60 |
\endlist |
| 61 |
|
| 62 |
\keyword qt-platform-support |
| 63 |
\section2 Qt Platform Support |
| 64 |
Alternatively, Qt may be installed on its own without the Nokia Qt SDK. |
| 65 |
|
| 66 |
Information regarding Qt Support on Different Platforms: |
| 67 |
\list |
| 68 |
\o \l{Installing Qt for the Symbian platform}{Symbian and Mobile Development} |
| 69 |
\o \l{Support for Windows}{Microsoft Windows} |
| 70 |
\o \l{Support for Windows CE and Windows Mobile}{Microsoft Windows CE} |
| 71 |
\o \l{Support for Mac OS X}{Apple Mac OS X} |
| 72 |
\o \l{Support for Linux/X11}{Linux and X11 Platforms} |
| 73 |
\o \l{Support for Embedded Linux}{Qt for Embedded Linux} |
| 74 |
\endlist |
| 75 |
For more information about the platforms supported |
| 76 |
and their installation pages, view the \l {Supported Platforms} and the |
| 77 |
\l {Cross-Platform and Platform-Specific Development} pages. |
| 78 |
\enddiv |
| 79 |
|
| 80 |
\div {class = "indexboxcont indexboxbar normallist"} |
| 81 |
\keyword qt-technologies |
| 82 |
\section1 Qt Technologies |
| 83 |
|
| 84 |
Qt introduces an innovative alternative for inter-object communication, called |
| 85 |
"signals and slots", that replaces the old and unsafe callback technique used in |
| 86 |
many legacy frameworks. Qt also provides a conventional event model for handling |
| 87 |
mouse clicks, key presses, and other user input. Qt's cross-platform GUI |
| 88 |
applications can support all the user interface functionality required by modern |
| 89 |
applications, such as menus, context menus, drag and drop, and dockable |
| 90 |
toolbars. Desktop integration features provided by Qt can be used to extend |
| 91 |
applications into the surrounding desktop environment, taking advantage of some |
| 92 |
of the services provided on each platform. |
| 93 |
|
| 94 |
The \l{All Modules}{Qt Modules} page has a listing of the technology modules offered by Qt. |
| 95 |
|
| 96 |
\keyword qt-desktop-meta-object-system |
| 97 |
\section2 Qt's Meta-Object System |
| 98 |
Qt offers a unique event system based on meta-objects, signals and slots, and property systems. |
| 99 |
\list |
| 100 |
\o \l{The Meta-Object System}{Qt's Meta-Object System} - Qt's mechanism for signals and slots, inter-object communication, run-time type information, and dynamic property system |
| 101 |
\o \l{The Event System}{Event System} - event handling and delivery |
| 102 |
\o \l{The Property System}{Property System} - dynamic object properties |
| 103 |
\endlist |
| 104 |
|
| 105 |
\keyword qt-ui-creation |
| 106 |
\section2 UI Creation |
| 107 |
Qt offers several options with regards to user interface creation: widget based |
| 108 |
applications using layouts and Qt Quick interfaces with QML. |
| 109 |
\list |
| 110 |
\o \l{Qt Quick} - create UIs using QML |
| 111 |
\list |
| 112 |
\o \l{external: Developing Qt Quick Applications}{Creator's QML Design Mode} - design Qt Quick interfaces using Creator's design mode |
| 113 |
\o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian} - a native QML component set for the Symbian^3 platform |
| 114 |
\endlist |
| 115 |
\o \l{Widgets and Layouts} - primary elements for C++ based interfaces |
| 116 |
\list |
| 117 |
\o \l{external: Designer in Creator}{Creator's Designer} - design interfaces using Qt Designer |
| 118 |
\endlist |
| 119 |
\o \l{UI Design with Qt} - covers many Qt features for UI creation |
| 120 |
\endlist |
| 121 |
|
| 122 |
\section2 Inter-Process Communication, Threading, and Networking |
| 123 |
In addition to \l{qt-desktop-meta-object-system}{Qt's Meta-Object System}, Qt has several technologies |
| 124 |
that deal with inter-process communication. |
| 125 |
\list |
| 126 |
\o \l{Inter-Process Communication in Qt}{Inter-Process Communication} - various overviews of protocols implemented in Qt |
| 127 |
\o \l{Network programming with Qt}{Network Programming} - various overviews to network APIs |
| 128 |
\o \l{D-Bus} - D-Bus implementation in Qt |
| 129 |
\o \l{Thread Support in Qt}{Thread Support} - overview of threading APIs and concurrent programming topics |
| 130 |
\endlist |
| 131 |
|
| 132 |
\keyword qt-rendering-painting-system |
| 133 |
\section2 Rendering and Paint System |
| 134 |
Qt has various support for different rendering and painting methods. |
| 135 |
\list |
| 136 |
\o \l{Coordinate System} - Information about the coordinate system used by the paint system |
| 137 |
\o \l{Graphics View Framework} - manages a large number of 2D items and visualizes the items |
| 138 |
\o \l{Paint System} - A system for painting on the screen or on print devices using the same API |
| 139 |
\o \l{QtSvg Module} - module for displaying and creating SVG files |
| 140 |
\o Rendering APIs: |
| 141 |
\list |
| 142 |
\o \l{QtOpenGL Module} - module for rendering with the OpenGL API |
| 143 |
\o \l{OpenVG Rendering in Qt}{QtOpenVG Module} - provides support for OpenVG painting |
| 144 |
\endlist |
| 145 |
\o \l{Printing with Qt} - A guide to producing printed output with Qt's paint system and widgets |
| 146 |
\endlist |
| 147 |
|
| 148 |
\keyword qt-webkit |
| 149 |
\section2 QtWebKit Module |
| 150 |
Web applications are increasing in importance and abundance and Qt has |
| 151 |
\l{WebKit Open Source Project}{WebKit} support. |
| 152 |
\list |
| 153 |
\o \l{WebKit in Qt} - WebKit Module |
| 154 |
\endlist |
| 155 |
|
| 156 |
\keyword qt-utilities |
| 157 |
\section2 Utilities |
| 158 |
Qt supports many utilities that work on multiple platforms. |
| 159 |
\list |
| 160 |
\o \l{Container Classes}{Containers} - Qt's implementation of various data structures such as linked lists and hash maps |
| 161 |
\o \l{Rich Text Processing} - for manipulating structured rich text documents |
| 162 |
\o \l{XML Processing} - high level manipulation of XML data using different interfaces |
| 163 |
\o \l{Making Applications Scriptable} - provides Qt applications with ECMAScript processor |
| 164 |
\o \l{Qt Linguist Manual}{Qt Linguist} - for translating applications into local languages |
| 165 |
\endlist |
| 166 |
For more information, visit the \l{Qt's Tools}{Qt Tools} page. |
| 167 |
\enddiv |
| 168 |
\div {class = "indexboxcont indexboxbar normallist"} |
| 169 |
\keyword qt-testing |
| 170 |
\section1 Testing Qt Applications |
| 171 |
Testing and debugging are part of the development process and Qt offers the |
| 172 |
developer multiple methods of testing their code. |
| 173 |
\list |
| 174 |
\o \l{external: Debugging Applications in Creator}{Debugging Applications in Creator} - various debugging options in Creator |
| 175 |
\o \l{Debugging Techniques} - essential techniques for debugging Qt code |
| 176 |
\o \l{external: Qt Simulator Manual}{Simulator} - testing mobile applications by simulating a mobile environment |
| 177 |
\o \l{QML Viewer} - an executable that is able to run QML files |
| 178 |
\o \l{QTestLib Manual}{QTestLib} - a unit testing framework built into Qt |
| 179 |
\endlist |
| 180 |
\enddiv |
| 181 |
|
| 182 |
\div {class = "indexboxcont indexboxbar normallist"} |
| 183 |
\keyword qt-deployment |
| 184 |
\section1 Deployment |
| 185 |
Symbian phones, Maemo devices, desktop environments, embedded Linux devices -- Qt applications are deployable to many environments. |
| 186 |
To deploy Qt applications onto multiple platforms, there are special |
| 187 |
considerations that each platform introduce. |
| 188 |
\list |
| 189 |
\o \l{Deploying Qt Applications}{Deploying Qt Libraries} - compares static versus shared libraries and deploying Qt libraries |
| 190 |
\o \l{Deploying Qt Applications#licensing}{Deploying Third Party Libraries} - deployment of libraries that are not under Qt's dual-license model. |
| 191 |
\o Platform-Specific Deployment: |
| 192 |
\list |
| 193 |
\o \l{Deploying an Application on X11 Platforms}{X11} - deploying Qt applications on X11 platforms |
| 194 |
\o \l{Deploying an Application on Windows}{Windows} - deploying Qt applications on Windows operating systems |
| 195 |
\o \l{Deploying an Application on Mac OS X}{Mac OS X} - deploying Qt applications on Mac OS X |
| 196 |
\o \l{Deploying Qt for Embedded Linux Applications}{Embedded Linux} - deploying Qt applications on embedded Linux |
| 197 |
\o \l{Deploying an Application on the Symbian Platform}{Symbian} - deploying Qt applications on the Symbian platform |
| 198 |
\endlist |
| 199 |
\o \l{external: Symbian Deployment in Creator}{Symbian Deployment in Creator} - Symbian application deployment built into Creator |
| 200 |
\o \l{external: Maemo Deployment in Creator}{Deploying Qt Applications on Maemo Devices} |
| 201 |
\endlist |
| 202 |
|
| 203 |
\section1 Ovi Store Publishing |
| 204 |
Creator can publish applications to Ovi Store directly. |
| 205 |
\list |
| 206 |
\o \l{external: Publishing Applications to Ovi Store}{Publishing Qt Applications to Ovi Store} |
| 207 |
\endlist |
| 208 |
For additional information, visit the \l{Cross-Platform and Platform-Specific Development} |
| 209 |
and the \l {Supported Platforms} page. |
| 210 |
|
| 211 |
\enddiv |
| 212 |
\div {class = "indexboxcont indexboxbar normallist"} |
| 213 |
\section1 Where to Go from Here |
| 214 |
|
| 215 |
Qt Demos and Examples |
| 216 |
\list |
| 217 |
\o \l{Qt Demonstrations}{Application Gallery} |
| 218 |
\o \l{Tutorials} |
| 219 |
\o \l {Qt Examples} |
| 220 |
\o \l {QML Examples and Demos} |
| 221 |
\endlist |
| 222 |
|
| 223 |
Qt Information |
| 224 |
\list |
| 225 |
\o \l{Programming with Qt} |
| 226 |
\o \l{UI Design with Qt} |
| 227 |
\o \l{Cross-platform and Platform-specific Development} |
| 228 |
\o \l{Qt and Key Technologies} |
| 229 |
\o \l{Best Practice Guides} |
| 230 |
\o \l{Qt Licenses and Credits}{Licenses and Credits} |
| 231 |
\endlist |
| 232 |
\enddiv |
| 233 |
*/ |