Update copyright headers
[qt:qt.git] / doc / src / getting-started / examples.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    \group all-examples
30    \title Qt Examples
31
32    Qt includes a set of examples that cover nearly every aspect of Qt
33    development. They aren't meant to be impressive when you run them,
34    but in each case the source code has been carefully written to
35    illustrate one or more best Qt programming practices.
36
37    You can run the examples from the \l{Examples and Demos Launcher}
38    application (except see \l{QML Examples and Demos} {QML Examples}
39    for special instructions for running those examples). In addition,
40    Qt Creator can directly run these examples through the Welcome Page.
41
42    The examples are listed below by functional area. Each example
43    listed in a particular functional area is meant to illustrate how
44    best to use Qt to do some particular task in that functional area,
45    but the examples will often use features from other functional
46    areas as well for completeness.
47
48    If you are new to Qt, you should probably start by going through
49    the \l{Tutorials}, and then begin with the
50    \l{mainwindows/application} {Application} example.
51
52    In addition to these examples and the \l{Tutorials}{tutorials}, Qt
53    includes a \l{Qt Demonstrations}{selection of demos} that
54    deliberately show off Qt's features. You might want to look at
55    these as well.
56
57    These examples are provided under the terms of the
58    \l{New and Modified BSD Licenses}{Modified BSD License}.
59
60    \section1 Qt Quick Example Code
61    The \l{QML Examples and Demos} site has a dedicated page for QML examples.
62
63    \section1 Qt Mobility Example Code
64    The \l{external: Qt Mobility Examples}{Qt Mobility Examples} page lists
65    examples that show how the Qt Mobility APIs might be used.
66
67    \section1 Qt Examples by Module or Technology
68
69    \generatelist{related}
70 */
71
72 /*!
73     \page examples-widgets.html
74     \title Widget Examples
75     \ingroup all-examples
76     \brief Lots of examples of how to use different kinds of widgets.
77
78     \image widget-examples.png
79
80     Qt comes with a large range of standard widgets that users of modern
81     applications have come to expect.
82
83     You can also develop your own custom widgets and controls, and use them
84     alongside standard widgets.
85
86     It is even possible to provide custom styles and themes for widgets that can
87     be used to change the appearance of standard widgets and appropriately
88     written custom widgets.
89
90     \list
91     \o \l{widgets/analogclock}{Analog Clock}\raisedaster
92     \o \l{widgets/calculator}{Calculator}\raisedaster
93     \o \l{widgets/calendarwidget}{Calendar Widget}\raisedaster
94     \o \l{widgets/charactermap}{Character Map}\raisedaster
95     \o \l{widgets/codeeditor}{Code Editor}\raisedaster
96     \o \l{widgets/digitalclock}{Digital Clock}\raisedaster
97     \o \l{widgets/groupbox}{Group Box}\raisedaster
98     \o \l{widgets/icons}{Icons}\raisedaster
99     \o \l{widgets/imageviewer}{Image Viewer}\raisedaster
100     \o \l{widgets/lineedits}{Line Edits}\raisedaster
101     \o \l{widgets/movie}{Movie}
102     \o \l{widgets/scribble}{Scribble}\raisedaster
103     \o \l{widgets/shapedclock}{Shaped Clock}\raisedaster
104     \o \l{widgets/sliders}{Sliders}\raisedaster
105     \o \l{widgets/softkeys}{Soft Keys}
106     \o \l{widgets/spinboxes}{Spin Boxes}\raisedaster
107     \o \l{widgets/styles}{Styles}\raisedaster
108     \o \l{widgets/stylesheet}{Style Sheet}\raisedaster
109     \o \l{widgets/tablet}{Tablet}\raisedaster
110     \o \l{widgets/tetrix}{Tetrix}\raisedaster
111     \o \l{widgets/tooltips}{Tooltips}\raisedaster
112     \o \l{widgets/validators}{Validators}
113     \o \l{widgets/wiggly}{Wiggly}\raisedaster
114     \o \l{widgets/windowflags}{Window Flags}\raisedaster
115     \endlist
116
117     Examples marked with an asterisk (*) are fully documented.
118 */
119
120 /*!
121     \page examples-dialogs.html
122     \ingroup all-examples
123     \title Dialog Examples
124     \brief Using Qt's standard dialogs and building and using custom dialogs.
125
126     \image dialog-examples.png
127
128     Qt includes standard dialogs for many common operations, such as file
129     selection, printing, and color selection.
130
131     Custom dialogs can also be created for specialized modal or modeless
132     interactions with users.
133
134     \list
135     \o \l{dialogs/classwizard}{Class Wizard}\raisedaster
136     \o \l{dialogs/configdialog}{Config Dialog}
137     \o \l{dialogs/extension}{Extension}\raisedaster
138     \o \l{dialogs/findfiles}{Find Files}\raisedaster
139     \o \l{dialogs/licensewizard}{License Wizard}\raisedaster
140     \o \l{dialogs/standarddialogs}{Standard Dialogs}
141     \o \l{dialogs/tabdialog}{Tab Dialog}\raisedaster
142     \o \l{dialogs/trivialwizard}{Trivial Wizard}
143     \endlist
144
145     Examples marked with an asterisk (*) are fully documented.
146 */
147
148 /*!
149     \page examples-mainwindow.html
150     \ingroup all-examples
151     \title Main Window Examples
152     \brief Building applications around a main window.
153
154     \image mainwindow-examples.png
155
156     All the standard features of application main windows are provided by Qt.
157
158     Main windows can have pull down menus, tool bars, and dock windows. These
159     separate forms of user input are unified in an integrated action system that
160     also supports keyboard shortcuts and accelerator keys in menu items.
161
162     \list
163     \o \l{mainwindows/application}{Application}\raisedaster
164     \o \l{mainwindows/dockwidgets}{Dock Widgets}\raisedaster
165     \o \l{mainwindows/mdi}{MDI}
166     \o \l{mainwindows/menus}{Menus}\raisedaster
167     \o \l{mainwindows/recentfiles}{Recent Files}
168     \o \l{mainwindows/sdi}{SDI}
169     \endlist
170
171     Examples marked with an asterisk (*) are fully documented.
172 */
173
174 /*!
175     \page examples-layouts.html
176     \ingroup all-examples
177     \title Layout Examples
178     \brief Using Qt's layout-based approach to widget management.
179
180     \image layout-examples.png
181
182     Qt uses a layout-based approach to widget management. Widgets are arranged in
183     the optimal positions in windows based on simple layout rules, leading to a
184     consistent look and feel.
185
186     Custom layouts can be used to provide more control over the positions and
187     sizes of child widgets.
188
189     \list
190     \o \l{layouts/basiclayouts}{Basic Layouts}\raisedaster
191     \o \l{layouts/borderlayout}{Border Layout}
192     \o \l{layouts/dynamiclayouts}{Dynamic Layouts}
193     \o \l{layouts/flowlayout}{Flow Layout}
194     \endlist
195
196     Examples marked with an asterisk (*) are fully documented.
197 */
198
199 /*!
200     \page examples-itemviews.html
201     \ingroup all-examples
202     \title Item Views Examples
203     \brief Using the model/view design pattern to separate presentation from data.
204
205     \image itemview-examples.png
206
207     Item views are widgets that typically display data sets. Qt 4's model/view
208     framework lets you handle large data sets by separating the underlying data
209     from the way it is represented to the user, and provides support for
210     customized rendering through the use of delegates.
211
212     \list
213     \o \l{itemviews/addressbook}{Address Book}\raisedaster
214     \o \l{itemviews/basicsortfiltermodel}{Basic Sort/Filter Model}
215     \o \l{itemviews/chart}{Chart}
216     \o \l{itemviews/coloreditorfactory}{Color Editor Factory}\raisedaster
217     \o \l{itemviews/combowidgetmapper}{Combo Widget Mapper}\raisedaster
218     \o \l{itemviews/customsortfiltermodel}{Custom Sort/Filter Model}\raisedaster
219     \o \l{itemviews/dirview}{Dir View}
220     \o \l{itemviews/editabletreemodel}{Editable Tree Model}\raisedaster
221     \o \l{itemviews/fetchmore}{Fetch More}\raisedaster
222     \o \l{itemviews/frozencolumn}{Frozen Column}\raisedaster
223     \o \l{itemviews/pixelator}{Pixelator}\raisedaster
224     \o \l{itemviews/puzzle}{Puzzle}
225     \o \l{itemviews/simpledommodel}{Simple DOM Model}\raisedaster
226     \o \l{itemviews/simpletreemodel}{Simple Tree Model}\raisedaster
227     \o \l{itemviews/simplewidgetmapper}{Simple Widget Mapper}\raisedaster
228     \o \l{itemviews/spinboxdelegate}{Spin Box Delegate}\raisedaster
229     \o \l{itemviews/stardelegate}{Star Delegate}\raisedaster
230     \endlist
231
232     Examples marked with an asterisk (*) are fully documented.
233 */
234
235 /*!
236     \page examples-graphicsview.html
237     \ingroup all-examples
238     \title Graphics View Examples
239     \brief Using Qt to manage and interact with a large (potentially) number of graphics items.
240
241     \image graphicsview-examples.png
242
243     Qt is provided with a comprehensive canvas through the GraphicsView
244     classes.
245
246     These examples demonstrate the fundamental aspects of canvas programming
247     with Qt.
248
249     \list
250     \o \l{graphicsview/collidingmice}{Colliding Mice}\raisedaster
251     \o \l{graphicsview/diagramscene}{Diagram Scene}\raisedaster
252     \o \l{graphicsview/dragdroprobot}{Drag and Drop Robot}\raisedaster
253     \o \l{graphicsview/elasticnodes}{Elastic Nodes}\raisedaster
254     \o \l{graphicsview/padnavigator}{Pad Navigator}\raisedaster
255     \o \l{graphicsview/portedasteroids}{Ported Asteroids}
256     \o \l{graphicsview/portedcanvas}{Ported Canvas}
257     \endlist
258
259     These examples show the use of graphics widgets and layouts.
260
261     \list
262     \o \l{graphicsview/anchorlayout}{Anchor Layout}
263     \o \l{graphicsview/flowlayout}{Flow Layout}
264     \o \l{graphicsview/simpleanchorlayout}{Simple Anchor Layout}
265     \o \l{graphicsview/weatheranchorlayout}{Weather Anchor Layout}
266     \o \l{graphicsview/basicgraphicslayouts}{Basic Graphics Layouts}
267     \endlist
268
269     Some examples demonstrate the use of graphics effects with canvas items.
270
271     \list
272     \o \l{effects/blurpicker}{Blur Picker Effect}
273     \o \l{effects/fademessage}{Fade Message Effect}
274     \o \l{effects/lighting}{Lighting Effect}
275     \endlist
276
277     Examples marked with an asterisk (*) are fully documented.
278 */
279
280 /*!
281     \page examples-painting.html
282     \ingroup all-examples
283     \title Painting Examples
284     \brief How to use the Qt painting system.
285
286     \image painting-examples.png
287
288     Qt's painting system is able to render vector graphics, images, and outline
289     font-based text with sub-pixel accuracy accuracy using anti-aliasing to
290     improve rendering quality.
291
292     These examples show the most common techniques that are used when painting
293     with Qt, from basic concepts such as drawing simple primitives to the use of
294     transformations.
295
296     \list
297     \o \l{painting/basicdrawing}{Basic Drawing}\raisedaster
298     \o \l{painting/concentriccircles}{Concentric Circles}\raisedaster
299     \o \l{painting/fontsampler}{Font Sampler}
300     \o \l{painting/imagecomposition}{Image Composition}\raisedaster
301     \o \l{painting/painterpaths}{Painter Paths}\raisedaster
302     \o \l{painting/svggenerator}{SVG Generator}\raisedaster
303     \o \l{painting/svgviewer}{SVG Viewer}
304     \o \l{painting/transformations}{Transformations}\raisedaster
305     \endlist
306
307     Examples marked with an asterisk (*) are fully documented.
308 */
309
310 /*!
311     \page examples-richtext.html
312     \ingroup all-examples
313     \title Rich Text Examples
314     \brief Using the document-oriented rich text engine.
315
316     \image richtext-examples.png
317
318     Qt provides powerful document-oriented rich text engine that supports Unicode
319     and right-to-left scripts. Documents can be manipulated using a cursor-based
320     API, and their contents can be imported and exported as both HTML and in a
321     custom XML format.
322
323     \list
324     \o \l{richtext/calendar}{Calendar}\raisedaster
325     \o \l{richtext/orderform}{Order Form}\raisedaster
326     \o \l{richtext/syntaxhighlighter}{Syntax Highlighter}\raisedaster
327     \o \l{richtext/textobject}{Text Object}\raisedaster
328     \endlist
329 */
330
331 /*!
332     \page examples-desktop.html
333     \ingroup all-examples
334     \title Desktop Examples
335     \brief Integrating your Qt application with your favorite desktop.
336
337     \image desktop-examples.png
338
339     Qt provides features to enable applications to integrate with the user's
340     preferred desktop environment.
341
342     Features such as system tray icons, access to the desktop widget, and
343     support for desktop services can be used to improve the appearance of
344     applications and take advantage of underlying desktop facilities.
345
346     \list
347     \o \l{desktop/screenshot}{Screenshot}\raisedaster
348     \o \l{desktop/systray}{System Tray}\raisedaster
349     \endlist
350 */
351
352 /*!
353     \page examples-draganddrop.html
354     \ingroup all-examples
355     \title Drag and Drop Examples
356     \brief How to access your platform's native drag and drop functionality.
357
358     \image draganddrop-examples.png
359
360     Qt supports native drag and drop on all platforms via an extensible
361     MIME-based system that enables applications to send data to each other in the
362     most appropriate formats.
363
364     Drag and drop can also be implemented for internal use by applications.
365
366     \list
367     \o \l{draganddrop/delayedencoding}{Delayed Encoding}\raisedaster
368     \o \l{draganddrop/draggableicons}{Draggable Icons}
369     \o \l{draganddrop/draggabletext}{Draggable Text}
370     \o \l{draganddrop/dropsite}{Drop Site}
371     \o \l{draganddrop/fridgemagnets}{Fridge Magnets}\raisedaster
372     \o \l{draganddrop/puzzle}{Drag and Drop Puzzle}
373     \endlist
374
375     Examples marked with an asterisk (*) are fully documented.
376 */
377
378 /*!
379     \page examples-threadandconcurrent.html
380     \ingroup all-examples
381     \title Threading and Concurrent Programming Examples
382     \brief Threading and concurrent programming in Qt.
383
384     \image thread-examples.png
385
386     Qt 4 makes it easier than ever to write multithreaded applications. More
387     classes have been made usable from non-GUI threads, and the signals and slots
388     mechanism can now be used to communicate between threads.
389
390     Additionally, it is now possible to move objects between threads.
391
392     \list
393     \o \l{threads/queuedcustomtype}{Queued Custom Type}\raisedaster
394     \o \l{threads/mandelbrot}{Mandelbrot}\raisedaster
395     \o \l{threads/semaphores}{Semaphores}\raisedaster
396     \o \l{threads/waitconditions}{Wait Conditions}\raisedaster
397     \endlist
398
399     The QtConcurrent namespace includes a collection of classes and functions
400     for straightforward concurrent programming.
401
402     These examples show how to apply the basic techniques of concurrent
403     programming to simple problems.
404
405     \list
406     \o \l{qtconcurrent/imagescaling}{QtConcurrent Asynchronous Image Scaling}
407     \o \l{qtconcurrent/map}{QtConcurrent Map}
408     \o \l{qtconcurrent/progressdialog}{QtConcurrent Progress Dialog}
409     \o \l{qtconcurrent/runfunction}{QtConcurrent Run Function}
410     \o \l{qtconcurrent/wordcount}{QtConcurrent Word Count}
411     \endlist
412
413     Examples marked with an asterisk (*) are fully documented.
414 */
415
416 /*!
417     \page examples.tools.html
418     \ingroup all-examples
419     \title Tools Examples
420     \brief Using Qt's containers, iterators, and other tool classes.
421
422     \image tool-examples.png
423
424     Qt is equipped with a range of capable tool classes, from containers and
425     iterators to classes for string handling and manipulation.
426
427     Other classes provide application infrastructure support, handling plugin
428     loading and managing configuration files.
429
430     \list
431     \o \l{tools/codecs}{Codecs}
432     \o \l{tools/completer}{Completer}\raisedaster
433     \o \l{tools/customcompleter}{Custom Completer}\raisedaster
434     \o \l{tools/customtype}{Custom Type}\raisedaster
435     \o \l{tools/customtypesending}{Custom Type Sending}\raisedaster
436     \o \l{tools/echoplugin}{Echo Plugin}\raisedaster
437     \o \l{tools/i18n}{I18N}
438     \o \l{tools/inputpanel}{Input Panel}\raisedaster
439     \o \l{tools/plugandpaint}{Plug & Paint}\raisedaster
440     \o Plug & Paint Plugins: \l{tools/plugandpaintplugins/basictools}{Basic Tools}\raisedaster
441        and \l{tools/plugandpaintplugins/extrafilters}{Extra Filters}\raisedaster
442     \o \l{tools/regexp}{RegExp}
443     \o \l{tools/settingseditor}{Settings Editor}
444     \o \l{tools/styleplugin}{Style Plugin}\raisedaster
445     \o \l{tools/treemodelcompleter}{Tree Model Completer}\raisedaster
446     \o \l{tools/undoframework}{Undo Framework}\raisedaster
447     \endlist
448
449     Examples marked with an asterisk (*) are fully documented.
450 */
451
452 /*!
453     \page examples-network.html
454     \ingroup all-examples
455     \title Network Examples
456     \brief How to do network programming in Qt.
457
458     \image network-examples.png
459
460     Qt is provided with an extensive set of network classes to support both
461     client-based and server side network programming.
462
463     These examples demonstrate the fundamental aspects of network programming
464     with Qt.
465
466     \list
467     \o  \l{network/blockingfortuneclient}{Blocking Fortune Client}\raisedaster
468     \o  \l{network/broadcastreceiver}{Broadcast Receiver}
469     \o  \l{network/broadcastsender}{Broadcast Sender}
470     \o  \l{network/download}{Download}
471     \o  \l{network/downloadmanager}{Download Manager}
472     \o  \l{network/network-chat}{Network Chat}
473     \o  \l{network/fortuneclient}{Fortune Client}\raisedaster
474     \o  \l{network/fortuneserver}{Fortune Server}\raisedaster
475     \o  \l{network/qftp}{FTP}\raisedaster
476     \o  \l{network/http}{HTTP}
477     \o  \l{network/loopback}{Loopback}
478     \o  \l{network/threadedfortuneserver}{Threaded Fortune Server}\raisedaster
479     \o  \l{network/torrent}{Torrent}
480     \o  \l{network/googlesuggest}{Google Suggest}
481     \o  \l{network/bearercloud}{Bearer Cloud}\raisedaster
482     \o  \l{network/bearermonitor}{Bearer Monitor}
483     \o  \l{network/securesocketclient}{Secure Socket Client}
484     \o  \l{network/multicastreceiver}{Multicast Receiver}
485     \o  \l{network/multicastsender}{Multicast Sender}
486     \endlist
487
488     Examples marked with an asterisk (*) are fully documented.
489 */
490
491 /*!
492     \page examples-ipc.html
493     \ingroup all-examples
494     \title IPC Examples
495     \brief Inter-Process Communication with Qt.
496
497     \image ipc-examples.png
498
499     \list
500     \o \l{ipc/localfortuneclient}{Local Fortune Client}
501     \o \l{ipc/localfortuneserver}{Local Fortune Server}
502     \o \l{ipc/sharedmemory}{Shared Memory}\raisedaster
503     \endlist
504
505     Examples marked with an asterisk (*) are fully documented.
506 */
507
508 /*!
509     \page examples-opengl.html
510     \ingroup all-examples
511     \title OpenGL Examples
512     \brief Accessing OpenGL from Qt.
513
514     \image opengl-examples.png
515
516     Qt provides support for integration with OpenGL implementations on all
517     platforms, giving developers the opportunity to display hardware accelerated
518     3D graphics alongside a more conventional user interface.
519
520     These examples demonstrate the basic techniques used to take advantage of
521     OpenGL in Qt applications.
522
523     \list
524     \o \l{opengl/2dpainting}{2D Painting}\raisedaster
525     \o \l{opengl/framebufferobject}{Framebuffer Object}
526     \o \l{opengl/framebufferobject2}{Framebuffer Object 2}
527     \o \l{opengl/grabber}{Grabber}
528     \o \l{opengl/hellogl}{Hello GL}\raisedaster
529     \o \l{opengl/hellogl_es}{Hello GL - ported to Windows CE}\raisedaster
530     \o \l{opengl/overpainting}{Overpainting}\raisedaster
531     \o \l{opengl/pbuffers}{Pixel Buffers}
532     \o \l{opengl/pbuffers2}{Pixel Buffers 2}
533     \o \l{opengl/samplebuffers}{Sample Buffers}
534     \o \l{opengl/textures}{Textures}
535     \endlist
536
537     Examples marked with an asterisk (*) are fully documented.
538 */
539
540 /*!
541     \page examples-openvg.html
542     \ingroup all-examples
543     \title OpenVG Examples
544     \brief Accessing OpenVG from Qt.
545
546     \image opengl-examples.png
547
548     Qt provides support for integration with OpenVG implementations on
549     platforms with suitable drivers.
550
551     These examples demonstrate the basic techniques used to take advantage of
552     OpenVG in Qt applications.
553
554     \list
555     \o \l{openvg/star}{OpenVG Star}
556     \endlist
557 */
558
559 /*!
560     \page examples-multimedia.html
561     \ingroup all-examples
562     \title Multimedia Examples
563     \brief Audio, video, and Phonon with Qt.
564
565     \image phonon-examples.png
566
567     \section1 Multimedia
568
569     Qt provides low-level audio support on Linux, Windows and Mac OS X by default and
570     an audio plugin API to allow developers to implement their own audio support for
571     custom devices and platforms.
572
573     \section1 Audio Handling
574
575     These examples demonstrate the basic techniques used to take advantage of the
576     Audio API in Qt applications.
577
578     \list
579     \o \l{multimedia/audiodevices}{Audio Devices}
580     \o \l{multimedia/audiooutput}{Audio Output}
581     \o \l{multimedia/audioinput}{Audio Input}
582     \endlist
583
584     \section1 Video Output
585
586     \list
587     \o \l{multimedia/videowidget}{Video Widget}\raisedaster
588     \o \l{multimedia/videographicsitem}{Video Graphics Item}
589     \endlist
590
591     \section1 Phonon
592
593     The Phonon Multimedia Framework brings multimedia support to Qt applications.
594
595     The examples and demonstrations provided show how to play music and movies
596     using the Phonon API.
597
598     \list
599     \o \l{phonon/capabilities}{Capabilities}\raisedaster
600     \o \l{phonon/qmusicplayer}{Music Player}\raisedaster
601     \endlist
602
603     Examples marked with an asterisk (*) are fully documented.
604 */
605
606 /*!
607     \page examples-sql.html
608     \ingroup all-examples
609     \title SQL Examples
610     \brief Accessing your SQL database from Qt.
611
612     \image sql-examples.png
613
614     Qt provides extensive database interoperability, with support for products
615     from both open source and proprietary vendors.
616
617     SQL support is integrated with Qt's model/view architecture, making it easier
618     to provide GUI integration for your database applications.
619
620     \list
621     \o \l{sql/cachedtable}{Cached Table}\raisedaster
622     \o \l{sql/drilldown}{Drill Down}\raisedaster
623     \o \l{sql/querymodel}{Query Model}
624     \o \l{sql/relationaltablemodel}{Relational Table Model}
625     \o \l{sql/tablemodel}{Table Model}
626     \o \l{sql/masterdetail}{Master Detail}
627     \o \l{sql/sqlwidgetmapper}{SQL Widget Mapper}\raisedaster
628     \endlist
629
630     Examples marked with an asterisk (*) are fully documented.
631 */
632
633
634 /*!
635     \page examples-xml.html
636     \ingroup all-examples
637     \title XML Examples
638     \brief Using XML with Qt.
639
640     \image xml-examples.png XML
641
642     XML parsing and handling is supported through SAX and DOM compliant APIs
643     as well as streaming classes.
644
645     \list
646     \o \l{xml/dombookmarks}{DOM Bookmarks}
647     \o \l{xml/saxbookmarks}{SAX Bookmarks}
648     \o \l{xml/streambookmarks}{QXmlStream Bookmarks}\raisedaster
649     \o \l{xml/rsslisting}{RSS-Listing}
650     \o \l{xml/xmlstreamlint}{XML Stream Lint Example}\raisedaster
651     \o \l{xml/htmlinfo}{XML HTML Info}
652     \endlist
653
654     The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules
655     provide classes for querying XML files and custom data models.
656
657     \list
658     \o \l{xmlpatterns/recipes}{Recipes}
659     \o \l{xmlpatterns/filetree}{File System Example}
660     \o \l{xmlpatterns/qobjectxmlmodel}{QObject XML Model Example}
661     \o \l{xmlpatterns/xquery/globalVariables}{C++ Source Code Analyzer Example}
662     \o \l{xmlpatterns/trafficinfo}{Traffic Info}\raisedaster
663     \o \l{xmlpatterns/schema}{XML Schema Validation}\raisedaster
664     \endlist
665
666     Examples marked with an asterisk (*) are fully documented.
667 */
668
669 /*!
670     \page examples-designer.html
671     \ingroup all-examples
672     \title Qt Designer Examples
673     \brief Using Qt Designer to build your UI.
674
675     \image designer-examples.png QtDesigner
676
677     Qt Designer is a capable graphical user interface designer that lets you
678     create and configure forms without writing code. GUIs created with
679     Qt Designer can be compiled into an application or created at run-time.
680
681     \list
682     \o \l{designer/calculatorbuilder}{Calculator Builder}\raisedaster
683     \o \l{designer/calculatorform}{Calculator Form}\raisedaster
684     \o \l{designer/customwidgetplugin}{Custom Widget Plugin}\raisedaster
685     \o \l{designer/taskmenuextension}{Task Menu Extension}\raisedaster
686     \o \l{designer/containerextension}{Container Extension}\raisedaster
687     \o \l{designer/worldtimeclockbuilder}{World Time Clock Builder}\raisedaster
688     \o \l{designer/worldtimeclockplugin}{World Time Clock Plugin}\raisedaster
689     \endlist
690 */
691
692 /*!
693     \page examples-uitools.html
694     \ingroup all-examples
695     \title UiTools Examples
696     \brief Using the QtUiTools module.
697
698     \image uitools-examples.png UiTools
699
700     \list
701     \o \l{uitools/multipleinheritance}{Multiple Inheritance}\raisedaster
702     \o \l{uitools/textfinder}{Text Finder}\raisedaster
703     \endlist
704 */
705
706 /*!
707     \page examples-linguist.html
708     \ingroup all-examples
709     \ingroup internationalization
710     \title Qt Linguist Examples
711     \brief Using Qt Linguist to internationalize your Qt application.
712
713     \image linguist-examples.png
714
715     Internationalization is a core feature of Qt. These examples show how to
716     access translation and localization facilities at run-time.
717
718     \list
719     \o \l{linguist/hellotr}{Hello tr()}\raisedaster
720     \o \l{linguist/arrowpad}{Arrow Pad}\raisedaster
721     \o \l{linguist/trollprint}{Troll Print}\raisedaster
722     \endlist
723 */
724
725 /*!
726     \page examples-script.html
727     \ingroup all-examples
728     \title Qt Script Examples
729     \brief Using the Qt scripting environment.
730
731     \image qtscript-examples.png QtScript
732
733     Qt is provided with a powerful embedded scripting environment through the QtScript
734     classes.
735
736     These examples demonstrate the fundamental aspects of scripting applications
737     with Qt.
738
739     \list
740     \o \l{script/calculator}{Calculator}\raisedaster
741     \o \l{script/context2d}{Context2D}\raisedaster
742     \o \l{script/defaultprototypes}{Default Prototypes}\raisedaster
743     \o \l{script/helloscript}{Hello Script}\raisedaster
744     \o \l{script/marshal}{Qt Script Marshalling}
745     \o \l{script/qscript}{Qt Script Interpreter}
746     \o \l{script/qsdbg}{Qt Script Debugging}
747     \o \l{script/qstetrix}{Qt Script Tetrix}\raisedaster
748     \o \l{script/customclass}{Custom Script Class}\raisedaster
749     \endlist
750 */
751
752 /*!
753     \page examples-webkit.html
754     \ingroup all-examples
755     \title WebKit Examples
756     \brief Using WebKit in your Qt application.
757
758     \image webkit-examples.png WebKit
759
760     Qt provides an integrated Web browser component based on WebKit, the popular
761     open source browser engine.
762
763     These examples and demonstrations show a range of different uses for WebKit,
764     from displaying Web pages within a Qt user interface to an implementation of
765     a basic function Web browser.
766
767     \table
768     \header \o Example \o Description
769     \row \o \l{webkit/domtraversal}{DOM Traversal}\raisedaster
770     \o Shows how to use QWebElement to inspect the document structure of a Web page.
771     \row \o \l{webkit/fancybrowser}{Fancy Browser}
772     \o A more advanced browser example, showing the use of jQuery to perform effects.
773     \row \o \l{webkit/formextractor}{Form Extractor}
774     \o How to use JavaScript and C++ together to read page content.
775     \row \o \l{webkit/framecapture}{Frame Capture}
776     \o How to use the WebKit browser engine to obtain images of Web pages.
777     \row \o \l{webkit/googlechat}{Google Chat}
778     \o A real-world example that shows how an existing Web-based service can be accessed
779     using QtWebKit.
780     \row \o \l{webkit/imageanalyzer}{Image Analyzer}\raisedaster
781     \o A \l{The QtWebKit Bridge}{QtWebKit bridge} application which contains a
782     web interface and client-side processing.
783     \row \o \l{webkit/previewer}{Previewer}\raisedaster
784     \o Shows how to make a simple Web page previewer by using Qt's text input widgets
785     together with a QWebView widget.
786     \row \o \l{webkit/simpleselector}{Simple Selector}\raisedaster
787     \o A basic demonstration, showing how to use QWebElement to select elements in a
788     Web page.
789     \row \o \l{webkit/simplewebplugin}{Simple Web Plugin}\raisedaster
790     \o Shows how to embed a widget into a Web page displayed using a QWebView
791     widget.
792     \row \o \l{webkit/webftpclient}{Web FTP Client}\raisedaster
793     \o Shows how to add support for a new protocol to QtWebKit-based applications.
794     \row \o \l{webkit/webplugin}{Web Plugin}\raisedaster
795     \o Shows how to communicate with a widget embedded into a Web page.
796     \endtable
797
798     Examples marked with an asterisk (*) are fully documented.
799 */
800
801 /*!
802     \page examples-helpsystem.html
803     \ingroup all-examples
804     \title Help System Examples
805     \brief Adding interactive help to your Qt application.
806
807     \image assistant-examples.png HelpSystem
808
809     Support for interactive help is provided by the Qt Assistant application.
810     Developers can take advantages of the facilities it offers to display
811     specially-prepared documentation to users of their applications.
812
813     \list
814     \o \l{help/simpletextviewer}{Simple Text Viewer}\raisedaster
815     \o \l{help/remotecontrol}{Remote Control}
816     \o \l{help/contextsensitivehelp}{Context-Sensitive Help}
817     \endlist
818
819     Examples marked with an asterisk (*) are fully documented.
820 */
821
822 /*!
823     \page examples-statemachine.html
824     \ingroup all-examples
825     \title State Machine Examples
826     \brief Using Qt's finite state machine classes.
827
828     \image statemachine-examples.png StateMachine
829
830     Qt provides a powerful hierarchical finite state machine through the Qt State
831     Machine classes.
832
833     These examples demonstrate the fundamental aspects of implementing
834     Statecharts with Qt.
835
836     \list
837     \o \l{statemachine/eventtransitions}{Event Transitions}\raisedaster
838     \o \l{statemachine/factorial}{Factorial States}\raisedaster
839     \o \l{statemachine/pingpong}{Ping Pong States}\raisedaster
840     \o \l{statemachine/rogue}{Rogue}\raisedaster
841     \o \l{statemachine/trafficlight}{Traffic Light}\raisedaster
842     \o \l{statemachine/twowaybutton}{Two-way Button}\raisedaster
843     \endlist
844 */
845
846 /*!
847     \page examples-animation.html
848     \ingroup all-examples
849     \title Animation Framework Examples
850     \brief Doing animations with Qt.
851
852     \image animation-examples.png Animation
853
854     \list
855         \o \l{animation/animatedtiles}{Animated Tiles}
856         \o \l{animation/appchooser}{Application Chooser}
857         \o \l{animation/easing}{Easing Curves}
858     \o \l{animation/moveblocks}{Move Blocks}\raisedaster
859         \o \l{animation/states}{States}
860     \o \l{animation/stickman}{Stick man}\raisedaster
861     \endlist
862
863     Examples marked with an asterisk (*) are fully documented.
864 */
865
866 /*!
867     \page examples-touch.html
868     \ingroup all-examples
869     \title Touch Input Examples
870     \brief Using Qt's touch input capability.
871
872     Support for touch input makes it possible for developers to create
873     extensible and intuitive user interfaces.
874
875     \list
876     \o \l{touch/dials}{Touch Dials}
877     \o \l{touch/fingerpaint}{Finger Paint}
878     \o \l{touch/knobs}{Touch Knobs}
879     \o \l{touch/pinchzoom}{Pinch Zoom}
880     \endlist
881 */
882
883 /*!
884     \page examples-gestures.html
885     \ingroup all-examples
886     \title Gestures Examples
887     \brief Gesture programming examples.
888
889     The API of the gesture framework is not yet finalized and
890     still subject to change.
891
892     \list
893     \o \l{gestures/imagegestures}{Image Gestures}
894     \endlist
895 */
896
897 /*!
898     \page examples-dbus.html
899     \ingroup all-examples
900     \title D-Bus Examples
901     \brief Using D-Bus from Qt applications.
902
903     \list
904     \o \l{dbus/dbus-chat}{Chat}
905     \o \l{dbus/complexpingpong}{Complex Ping Pong}
906     \o \l{dbus/listnames}{List Names}
907     \o \l{dbus/pingpong}{Ping Pong}
908     \o \l{dbus/remotecontrolledcar}{Remote Controlled Car}
909     \endlist
910
911     Examples marked with an asterisk (*) are fully documented.
912 */
913
914 /*!
915     \page examples-embeddedlinux.html
916     \ingroup all-examples
917     \title Qt for Embedded Linux Examples
918     \brief Using Qt in Embedded Linux.
919
920     \image qt-embedded-examples.png QtEmbedded
921
922     These examples show how to take advantage of features specifically designed
923     for use on systems with limited resources, specialized hardware, and small
924     screens.
925
926     \list
927     \o \l{qws/svgalib}{Accelerated Graphics Driver}\raisedaster
928     \o \l{qws/dbscreen}{Double Buffered Graphics Driver}\raisedaster
929     \o \l{qws/mousecalibration}{Mouse Calibration}\raisedaster
930     \o \l{qws/simpledecoration}{Simple Decoration}\raisedaster
931     \endlist
932 */
933
934 /*!
935     \page examples-activeqt.html
936     \ingroup all-examples
937     \title ActiveQt Examples
938     \brief Using ActiveX from Qt applications.
939
940     \image activeqt-examples.png ActiveQt
941
942     \list
943     \o \l{activeqt/comapp}{COM App}\raisedaster
944     \o \l{Dot Net Example (ActiveQt)}{Dot Net}\raisedaster
945     \o \l{activeqt/hierarchy}{Hierarchy}\raisedaster
946     \o \l{activeqt/menus}{Menus}\raisedaster
947     \o \l{activeqt/multiple}{Multiple}\raisedaster
948     \o \l{activeqt/opengl}{OpenGL}\raisedaster
949     \o \l{activeqt/qutlook}{Qutlook}\raisedaster
950     \o \l{activeqt/simple}{Simple}\raisedaster
951     \o \l{activeqt/webbrowser}{Web Browser}\raisedaster
952     \o \l{activeqt/wrapper}{Wrapper}\raisedaster
953     \endlist
954 */