Update copyright headers
[qt:qt.git] / doc / src / mainpage.qdoc
1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Contact: http://www.qt.io/licensing/
5 **
6 ** This file is part of the documentation of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:FDL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see http://www.qt.io/terms-conditions. For further
15 ** information use the contact form at http://www.qt.io/contact-us.
16 **
17 ** GNU Free Documentation License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Free
19 ** Documentation License version 1.3 as published by the Free Software
20 ** Foundation and appearing in the file included in the packaging of
21 ** this file.  Please review the following information to ensure
22 ** the GNU Free Documentation License version 1.3 requirements
23 ** will be met: http://www.gnu.org/copyleft/fdl.html.
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 */
234