source: trunk/doc/src/getting-started/examples.qdoc@ 624

Last change on this file since 624 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

  • Property svn:eol-style set to native
File size: 41.5 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the documentation of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*!
43 \page examples-overview.html
44 \raw HTML
45 <script>
46 document.location.href = "examples.html";
47 </script>
48 \endraw
49 Click this \l{Qt Examples}{link} if you don't get redirected.
50*/
51
52/*!
53 \page examples.html
54 \title Qt Examples
55 \brief The example programs provided with Qt.
56
57 \previouspage Tutorials
58 \contentspage How to Learn Qt
59 \nextpage Qt Demonstrations
60
61 Qt is supplied with a variety of examples that cover almost every aspect
62 of development. They are not all designed to be impressive when you run
63 them, but their source code is carefully written to show good Qt
64 programming practices. You can launch any of these programs from the
65 \l{Examples and Demos Launcher} application.
66
67 These examples are ordered by functional area, but many examples often
68 use features from many parts of Qt to highlight one area in particular.
69 If you are new to Qt, you should probably start by going through the
70 \l{Tutorials} before you have a look at the
71 \l{mainwindows/application}{Application} example.
72
73 In addition to the examples and the tutorial, Qt includes a
74 \l{Qt Demonstrations}{selection of demos} that deliberately show off
75 Qt's features. You might want to look at these as well.
76
77 \table
78 \row
79 \o{2,1} \l{Widgets Examples}{\bold Widgets}
80 \o{2,1} \l{Dialog Examples}{\bold Dialogs}
81 \row
82 \o \image widget-examples.png
83 \o
84 Qt comes with a large range of standard widgets that users of modern
85 applications have come to expect. You can also develop your own custom
86 widgets and controls, and use them alongside standard widgets.
87
88 It is even possible to provide custom styles and themes for widgets that can
89 be used to change the appearance of standard widgets and appropriately
90 written custom widgets.
91
92 \o \image dialog-examples.png Dialogs
93 \o
94 Qt includes standard dialogs for many common operations, such as file
95 selection, printing, and color selection.
96
97 Custom dialogs can also be created for specialized modal or modeless
98 interactions with users.
99
100 \row
101 \o{2,1} \l{Main Window Examples}{\bold{Main Windows}}
102 \o{2,1} \l{Layout Examples}{\bold Layouts}
103
104 \row
105 \o \image mainwindow-examples.png MainWindows
106 \o All the standard features of application main windows are provided by Qt.
107
108 Main windows can have pull down menus, tool bars, and dock windows. These
109 separate forms of user input are unified in an integrated action system that
110 also supports keyboard shortcuts and accelerator keys in menu items.
111
112 \o \image layout-examples.png Layouts
113 \o
114 Qt uses a layout-based approach to widget management. Widgets are arranged in
115 the optimal positions in windows based on simple layout rules, leading to a
116 consistent look and feel.
117
118 Custom layouts can be used to provide more control over the positions and
119 sizes of child widgets.
120
121 \row
122 \o{2,1} \l{Item Views Examples}{\bold{Item Views}}
123 \o{2,1} \l{Graphics View Examples}{\bold{Graphics View}}
124 \row
125 \o \image itemview-examples.png ItemViews
126 \o
127 Item views are widgets that typically display data sets. Qt 4's model/view
128 framework lets you handle large data sets by separating the underlying data
129 from the way it is represented to the user, and provides support for
130 customized rendering through the use of delegates.
131
132 \o \image graphicsview-examples.png GraphicsView
133 \o
134 Qt is provided with a comprehensive canvas through the GraphicsView
135 classes.
136
137 \row
138 \o{2,1} \l{Painting Examples}{\bold{Painting}}
139 \o{2,1} \l{Rich Text Examples}{\bold{Rich Text}}
140 \row
141 \o \image painting-examples.png Painting
142 \o
143 Qt's painting system is able to render vector graphics, images, and outline
144 font-based text with sub-pixel accuracy accuracy using anti-aliasing to
145 improve rendering quality.
146
147 \o \image richtext-examples.png RichText
148 \o
149 Qt provides powerful document-oriented rich text engine that supports Unicode
150 and right-to-left scripts. Documents can be manipulated using a cursor-based
151 API, and their contents can be imported and exported as both HTML and in a
152 custom XML format.
153
154 \row
155 \o{2,1} \l{Desktop Examples}{\bold Desktop}
156 \o{2,1} \l{Drag and Drop Examples}{\bold{Drag and Drop}}
157 \row
158 \o \image desktop-examples.png
159 \o
160 Qt provides features to enable applications to integrate with the user's
161 preferred desktop environment.
162
163 Features such as system tray icons, access to the desktop widget, and
164 support for desktop services can be used to improve the appearance of
165 applications and take advantage of underlying desktop facilities.
166
167 \o \image draganddrop-examples.png DragAndDrop
168 \o
169 Qt supports native drag and drop on all platforms via an extensible
170 MIME-based system that enables applications to send data to each other in the
171 most appropriate formats.
172
173 Drag and drop can also be implemented for internal use by applications.
174
175 \row
176 \o{2,1} \l{Threading and Concurrent Programming Examples}{\bold{Threading and Concurrent Programming}}
177 \o{2,1} \l{Tools Examples}{\bold{Tools}}
178 \row
179 \o \image thread-examples.png
180 \o
181 Qt 4 makes it easier than ever to write multithreaded applications. More
182 classes have been made usable from non-GUI threads, and the signals and slots
183 mechanism can now be used to communicate between threads.
184
185 The QtConcurrent namespace includes a collection of classes and functions
186 for straightforward concurrent programming.
187
188 \o \image tool-examples.png Tools
189 \o
190 Qt is equipped with a range of capable tool classes, from containers and
191 iterators to classes for string handling and manipulation.
192
193 Other classes provide application infrastructure support, handling plugin
194 loading and managing configuration files.
195
196 \row
197 \o{2,1} \l{Network Examples}{\bold{Network}}
198 \o{2,1} \l{Inter-Process Communication Examples}{\bold{Inter-Process Communication}}
199 \row
200 \o \image network-examples.png Network
201 \o
202 Qt is provided with an extensive set of network classes to support both
203 client-based and server side network programming.
204
205 \o \image ipc-examples.png IPC
206 \o
207
208 \row
209 \o{2,1} \l{OpenGL Examples}{\bold{OpenGL}}\bold{ and }\l{OpenVG Examples}{\bold{OpenVG}}\bold{ Examples}
210 \o{2,1} \l{Multimedia Examples}{\bold{Multimedia Framework}}
211 \row
212 \o \image opengl-examples.png OpenGL
213 \o
214 Qt provides support for integration with OpenGL implementations on all
215 platforms, giving developers the opportunity to display hardware accelerated
216 3D graphics alongside a more conventional user interface.
217
218 Qt provides support for integration with OpenVG implementations on
219 platforms with suitable drivers.
220
221 \o \image phonon-examples.png
222 \o
223 Qt provides low-level audio support on linux,windows and mac platforms by default and
224 an audio plugin API to allow developers to implement there own audio support for
225 custom devices and platforms.
226
227 The Phonon Multimedia Framework brings multimedia support to Qt applications.
228
229 \row
230 \o{2,1} \l{SQL Examples}{\bold{SQL}}
231 \o{2,1} \l{XML Examples}{\bold{XML}}
232 \row
233 \o \image sql-examples.png SQL
234 \o
235 Qt provides extensive database interoperability, with support for products
236 from both open source and proprietary vendors.
237
238 SQL support is integrated with Qt's model/view architecture, making it easier
239 to provide GUI integration for your database applications.
240
241 \o \image xml-examples.png XML
242 \o
243 XML parsing and handling is supported through SAX and DOM compliant APIs
244 as well as streaming classes.
245
246 The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules
247 provide classes for querying XML files and custom data models.
248
249 \row
250 \o{2,1} \l{Qt Designer Examples}{\bold{Qt Designer}}
251 \o{2,1} \l{UiTools Examples}{\bold UiTools}
252 \row
253 \o \image designer-examples.png Designer
254 \o
255 Qt Designer is a capable graphical user interface designer that lets you
256 create and configure forms without writing code. GUIs created with
257 Qt Designer can be compiled into an application or created at run-time.
258
259 \o \image uitools-examples.png UiTools
260 \o
261
262 \row
263 \o{2,1} \l{Qt Linguist Examples}{\bold{Qt Linguist}}
264 \o{2,1} \l{Qt Script Examples}{\bold{Qt Script}}
265 \row
266 \o \image linguist-examples.png QtLinguist
267 \o
268 Internationalization is a core feature of Qt.
269
270 \o \image qtscript-examples.png
271 \o
272 Qt is provided with a powerful embedded scripting environment through the QtScript
273 classes.
274
275 \row
276 \o{2,1} \l{WebKit Examples}{\bold WebKit}
277 \o{2,1} \l{Help System Examples}{\bold{Help System}}
278 \row
279 \o \image webkit-examples.png
280 \o
281 Qt provides an integrated Web browser component based on WebKit, the popular
282 open source browser engine.
283
284 \o \image assistant-examples.png HelpSystem
285 \o
286 Support for interactive help is provided by the Qt Assistant application.
287 Developers can take advantages of the facilities it offers to display
288 specially-prepared documentation to users of their applications.
289
290 \row
291 \o{2,1} \l{State Machine Examples}{\bold{State Machine}}
292 \o{2,1} \l{Animation Framework Examples}{\bold{Animation Framework}}
293 \row
294 \o \image statemachine-examples.png
295 \o
296 Qt provides a powerful hierarchical finite state machine through the Qt State
297 Machine classes.
298
299 \o \image animation-examples.png
300 \o
301 These examples show to to use the \l{The Animation Framework}{animation framework}
302 to build highly animated, high-performance GUIs.
303
304 \row
305 \o{2,1} \l{Multi-Touch Examples}{\bold{Multi-Touch Framework}}
306 \o{2,1} \l{Gestures Examples}{\bold{Gestures}}
307
308 \row
309 \o \image multitouch-examples.png
310 \o
311 Support for multi-touch input makes it possible for developers to create
312 extensible and intuitive user interfaces.
313
314 \o \image gestures-examples.png
315 \o
316 Applications can be written to respond to gestures as a natural input method.
317 These examples show how to enable support for standard and custom gestures in
318 applications.
319
320 \row
321 \o{2,1} \l{D-Bus Examples}{\bold{D-Bus}}
322 \o{2,1} \l{Qt for Embedded Linux Examples}{\bold{Qt for Embedded Linux}}
323
324 \row
325 \o \image qt-embedded-examples.png
326 \o
327 Systems with limited resources, specialized hardware, and small
328 screens require special attention.
329