diff options
author | Jason Barron <jbarron@trolltech.com> | 2009-08-18 06:34:18 (GMT) |
---|---|---|
committer | Jason Barron <jbarron@trolltech.com> | 2009-08-18 06:34:18 (GMT) |
commit | fd6740b6ade6e7f8e51a9cc558b723e7fae15ccf (patch) | |
tree | aa2ba4ce64d047d73c29ab0616e8a89d352c3abd /doc/src/getting-started | |
parent | d24029e3d4639f1300e7a68858936911df969f69 (diff) | |
parent | 572e165dcb8cc8fcdfaa4ab9bdab050f6a6cc173 (diff) | |
download | Qt-fd6740b6ade6e7f8e51a9cc558b723e7fae15ccf.zip Qt-fd6740b6ade6e7f8e51a9cc558b723e7fae15ccf.tar.gz Qt-fd6740b6ade6e7f8e51a9cc558b723e7fae15ccf.tar.bz2 |
Merge commit 'qt/master'
Conflicts:
doc/src/examples.qdoc
doc/src/plugins-howto.qdoc
doc/src/topics.qdoc
examples/phonon/musicplayer/mainwindow.cpp
src/3rdparty/freetype/src/base/ftobjs.c
src/corelib/global/qglobal.h
src/corelib/tools/qalgorithms.h
src/corelib/tools/qshareddata.cpp
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/tools.pri
src/corelib/xml/qxmlstream.h
src/gui/painting/painting.pri
src/gui/widgets/qdatetimeedit.cpp
tests/auto/qdesktopservices/qdesktopservices.pro
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qtextcodec/test/test.pro
Diffstat (limited to 'doc/src/getting-started')
-rw-r--r-- | doc/src/getting-started/demos.qdoc | 166 | ||||
-rw-r--r-- | doc/src/getting-started/examples.qdoc | 1108 | ||||
-rw-r--r-- | doc/src/getting-started/how-to-learn-qt.qdoc | 118 | ||||
-rw-r--r-- | doc/src/getting-started/installation.qdoc | 983 | ||||
-rw-r--r-- | doc/src/getting-started/known-issues.qdoc | 174 | ||||
-rw-r--r-- | doc/src/getting-started/tutorials.qdoc | 103 |
6 files changed, 2652 insertions, 0 deletions
diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc new file mode 100644 index 0000000..1eac06f --- /dev/null +++ b/doc/src/getting-started/demos.qdoc @@ -0,0 +1,166 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page demos.html + \title Qt Demonstrations + \brief Information about the demonstration programs provided with Qt. + + \previouspage Qt Examples + \contentspage How to Learn Qt + \nextpage What's New in Qt 4.5 + + This is the list of demonstrations in Qt's \c demos directory. + These are larger and more complicated programs than the + \l{Qt Examples} and are used to highlight certain features of + Qt. + + \table 50% + \header + \o {2,1} Getting an Overview + \row + \o \inlineimage qtdemo-small.png + \o + If you run the \l{Examples and Demos Launcher}, you'll see many of Qt's + widgets in action. + + The \l{Qt Widget Gallery} also provides overviews of selected Qt + widgets in each of the styles used on various supported platforms. + \endtable + + If you are new to Qt, and want to start developing applications, + you should probably start by going through the \l{Tutorials}. + + \section1 Painting + + \list + \o \l{demos/composition}{Composition Modes} demonstrates the range of + composition modes available with Qt. + \o \l{demos/deform}{Vector Deformation} demonstrates effects that are made + possible with a vector-oriented paint engine. + \o \l{demos/gradients}{Gradients} shows the different types of gradients + that are available in Qt. + \o \l{demos/pathstroke}{Path Stroking} shows Qt's built-in dash patterns + and shows how custom patterns can be used to extend the range of + available patterns. + \o \l{demos/affine}{Affine Transformations} demonstrates the different + affine transformations that can be used to influence painting operations. + \o \l{demos/arthurplugin}{Arthur Plugin} shows the widgets from the + other painting demos packaged as a custom widget plugin for \QD. + \endlist + + \section1 Item Views + + \list + \o \l{demos/interview}{Interview} shows the same model and selection being + shared between three different views. + \o \l{demos/spreadsheet}{Spreadsheet} demonstrates the use of a table view + as a spreadsheet, using custom delegates to render each item according to + the type of data it contains. + \endlist + + \section1 SQL + + \list + \o \l{demos/books}{Books} shows how Qt's SQL support and model/view integration + enables the user to modify the contents of a database without requiring + knowledge of SQL. + \o \l{demos/sqlbrowser}{SQL Browser} demonstrates a console for executing SQL + statements on a live database and provides a data browser for interactively + visualizing the results. + \endlist + + \section1 Rich Text + + \list + \o \l{demos/textedit}{Text Edit} shows Qt's rich text editing features and provides + an environment for experimenting with them. + \endlist + + \section1 Main Window + + \list + \o \l{demos/mainwindow}{Main Window} shows Qt's extensive support for main window + features, such as tool bars, dock windows, and menus. + \o \l{demos/macmainwindow}{Mac Main Window} shows how to create main window applications that has + the same appearance as other Mac OS X applications. + \endlist + + \section1 Graphics View + + \list + \o \l{demos/chip}{40000 Chips} uses the + \l{The Graphics View Framework}{Graphics View} framework to efficiently + display a large number of individual graphical items on a scrolling canvas, + highlighting features such as rotation, zooming, level of detail control, + and item selection. + \o \l{demos/embeddeddialogs}{Embedded Dialogs} showcases Qt 4.4's \e{Widgets on + the Canvas} feature by embedding a multitude of fully-working dialogs into a + scene. + \o \l{demos/boxes}{Boxes} showcases Qt's OpenGL support and the + integration with the Graphics View framework. + \endlist + + \section1 Tools + + \list + \o \l{demos/undo}{Undo Framework} demonstrates how Qt's + \l{Overview of Qt's Undo Framework}{undo framework} is used to + provide advanced undo/redo functionality. + \endlist + + \section1 QtWebKit + + \list + \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit Module}{WebKit module} + can be used to implement a small Web browser. + \endlist + + \section1 Phonon + + \list + \o \l{demos/mediaplayer}{Media Player} demonstrates how the \l{Phonon Module} can be + used to implement a basic media player application. + \endlist + + \note The Phonon demos are currently not available for the MinGW platform. + +*/ diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc new file mode 100644 index 0000000..253a4e4 --- /dev/null +++ b/doc/src/getting-started/examples.qdoc @@ -0,0 +1,1108 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page examples-overview.html + \raw HTML + <script> + document.location.href = "examples.html"; + </script> + \endraw + Click this \l{Qt Examples}{link} if you don't get redirected. +*/ + +/*! + \page examples.html + \title Qt Examples + \brief The example programs provided with Qt. + + \previouspage Tutorials + \contentspage How to Learn Qt + \nextpage Qt Demonstrations + + Qt is supplied with a variety of examples that cover almost every aspect + of development. They are not all designed to be impressive when you run + them, but their source code is carefully written to show good Qt + programming practices. You can launch any of these programs from the + \l{Examples and Demos Launcher} application. + + These examples are ordered by functional area, but many examples often + use features from many parts of Qt to highlight one area in particular. + If you are new to Qt, you should probably start by going through the + \l{Tutorials} before you have a look at the + \l{mainwindows/application}{Application} example. + + In addition to the examples and the tutorial, Qt includes a + \l{Qt Demonstrations}{selection of demos} that deliberately show off + Qt's features. You might want to look at these as well. + + \table + \row + \o{2,1} \l{Widgets Examples}{\bold Widgets} + \o{2,1} \l{Dialog Examples}{\bold Dialogs} + \row + \i \image widget-examples.png + \i + Qt comes with a large range of standard widgets that users of modern + applications have come to expect. You can also develop your own custom + widgets and controls, and use them alongside standard widgets. + + It is even possible to provide custom styles and themes for widgets that can + be used to change the appearance of standard widgets and appropriately + written custom widgets. + + \i \image dialog-examples.png Dialogs + \i + Qt includes standard dialogs for many common operations, such as file + selection, printing, and color selection. + + Custom dialogs can also be created for specialized modal or modeless + interactions with users. + + \row + \o{2,1} \l{Main Window Examples}{\bold{Main Windows}} + \o{2,1} \l{Layout Examples}{\bold Layouts} + + \row + \i \image mainwindow-examples.png MainWindows + \i All the standard features of application main windows are provided by Qt. + + Main windows can have pull down menus, tool bars, and dock windows. These + separate forms of user input are unified in an integrated action system that + also supports keyboard shortcuts and accelerator keys in menu items. + + \i \image layout-examples.png Layouts + \i + Qt uses a layout-based approach to widget management. Widgets are arranged in + the optimal positions in windows based on simple layout rules, leading to a + consistent look and feel. + + Custom layouts can be used to provide more control over the positions and + sizes of child widgets. + + \row + \o{2,1} \l{Item Views Examples}{\bold{Item Views}} + \o{2,1} \l{Graphics View Examples}{\bold{Graphics View}} + \row + \o \image itemview-examples.png ItemViews + \o + Item views are widgets that typically display data sets. Qt 4's model/view + framework lets you handle large data sets by separating the underlying data + from the way it is represented to the user, and provides support for + customized rendering through the use of delegates. + + \o \image graphicsview-examples.png GraphicsView + \o + Qt is provided with a comprehensive canvas through the GraphicsView + classes. + + \row + \o{2,1} \l{Painting Examples}{\bold{Painting}} + \o{2,1} \l{Rich Text Examples}{\bold{Rich Text}} + \row + \o \image painting-examples.png Painting + \o + Qt's painting system is able to render vector graphics, images, and outline + font-based text with sub-pixel accuracy accuracy using anti-aliasing to + improve rendering quality. + + \o \image richtext-examples.png RichText + \o + Qt provides powerful document-oriented rich text engine that supports Unicode + and right-to-left scripts. Documents can be manipulated using a cursor-based + API, and their contents can be imported and exported as both HTML and in a + custom XML format. + + \row + \o{2,1} \l{Desktop Examples}{\bold Desktop} + \o{2,1} \l{Drag and Drop Examples}{\bold{Drag and Drop}} + \row + \o \image desktop-examples.png + \o + Qt provides features to enable applications to integrate with the user's + preferred desktop environment. + + Features such as system tray icons, access to the desktop widget, and + support for desktop services can be used to improve the appearance of + applications and take advantage of underlying desktop facilities. + + \o \image draganddrop-examples.png DragAndDrop + \o + Qt supports native drag and drop on all platforms via an extensible + MIME-based system that enables applications to send data to each other in the + most appropriate formats. + + Drag and drop can also be implemented for internal use by applications. + + \row + \o{2,1} \l{Threading and Concurrent Programming Examples}{\bold{Threading and Concurrent Programming}} + \o{2,1} \l{Tools Examples}{\bold{Tools}} + \row + \o \image thread-examples.png + \o + Qt 4 makes it easier than ever to write multithreaded applications. More + classes have been made usable from non-GUI threads, and the signals and slots + mechanism can now be used to communicate between threads. + + The QtConcurrent namespace includes a collection of classes and functions + for straightforward concurrent programming. + + \o \image tool-examples.png Tools + \o + Qt is equipped with a range of capable tool classes, from containers and + iterators to classes for string handling and manipulation. + + Other classes provide application infrastructure support, handling plugin + loading and managing configuration files. + + \row + \o{2,1} \l{Network Examples}{\bold{Network}} + \o{2,1} \l{Inter-Process Communication Examples}{\bold{Inter-Process Communication}} + \row + \o \image network-examples.png Network + \o + Qt is provided with an extensive set of network classes to support both + client-based and server side network programming. + + \o \image ipc-examples.png IPC + \o + + \row + \o{2,1} \l{OpenGL Examples}{\bold OpenGL} + \o{2,1} \l{Multimedia Examples}{\bold{Multimedia Framework}} + \row + \o \image opengl-examples.png OpenGL + \o + Qt provides support for integration with OpenGL implementations on all + platforms, giving developers the opportunity to display hardware accelerated + 3D graphics alongside a more conventional user interface. + + \o \image phonon-examples.png + \o + Qt provides low-level audio support on linux,windows and mac platforms by default and + an audio plugin API to allow developers to implement there own audio support for + custom devices and platforms. + + The Phonon Multimedia Framework brings multimedia support to Qt applications. + + \row + \o{2,1} \l{SQL Examples}{\bold{SQL}} + \o{2,1} \l{XML Examples}{\bold{XML}} + \row + \o \image sql-examples.png SQL + \o + Qt provides extensive database interoperability, with support for products + from both open source and proprietary vendors. + + SQL support is integrated with Qt's model/view architecture, making it easier + to provide GUI integration for your database applications. + + \o \image xml-examples.png XML + \o + XML parsing and handling is supported through SAX and DOM compliant APIs + as well as streaming classes. + + The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules + provide classes for querying XML files and custom data models. + + \row + \o{2,1} \l{Qt Designer Examples}{\bold{Qt Designer}} + \o{2,1} \l{UiTools Examples}{\bold UiTools} + \row + \o \image designer-examples.png Designer + \o + Qt Designer is a capable graphical user interface designer that lets you + create and configure forms without writing code. GUIs created with + Qt Designer can be compiled into an application or created at run-time. + + \o \image uitools-examples.png UiTools + \o + + \row + \o{2,1} \l{Qt Linguist Examples}{\bold{Qt Linguist}} + \o{2,1} \l{Qt Script Examples}{\bold{Qt Script}} + \row + \o \image linguist-examples.png QtLinguist + \o + Internationalization is a core feature of Qt. + + \o \image qtscript-examples.png + \o + Qt is provided with a powerful embedded scripting environment through the QtScript + classes. + + \row + \o{2,1} \l{WebKit Examples}{\bold WebKit} + \o{2,1} \l{Help System Examples}{\bold{Help System}} + \row + \o \image webkit-examples.png + \o + Qt provides an integrated Web browser component based on WebKit, the popular + open source browser engine. + + \o \image assistant-examples.png HelpSystem + \o + Support for interactive help is provided by the Qt Assistant application. + Developers can take advantages of the facilities it offers to display + specially-prepared documentation to users of their applications. + + \row + \o{2,1} \l{State Machine Examples}{\bold{State Machine}} + \o{2,1} \l{Animation Framework Examples}{\bold{Animation Framework}} + \row + \o \image statemachine-examples.png + \o + Qt provides a powerful hierarchical finite state machine through the Qt State + Machine classes. + + \o \image animation-examples.png + \o + + \row + \o{2,1} \l{Qt for Embedded Linux Examples}{\bold{Qt for Embedded Linux}} + \o{2,1} \l{ActiveQt Examples}{\bold ActiveQt} + \row + \o \image qt-embedded-examples.png + \o + Systems with limited resources, specialized hardware, and small + screens require special attention. + + \o \image activeqt-examples.png ActiveQt + \o + + \row + \o{2,1} \l{D-Bus Examples}{\bold{D-Bus}} + \o{2,1} \l{Qt Quarterly}{\bold{Qt Quarterly}} + \row + \o \image dbus-examples.png D-Bus + \o + + \o \image qq-thumbnail.png QtQuarterly + \o + One more valuable source for examples and explanations of Qt + features is the archive of the \l {Qt Quarterly}. + + \endtable + +\omit + In the list below, examples marked with an asterisk (*) are fully + documented. Eventually, all the examples will be fully documented, + but sometimes we include an example before we have time to write + about it. +\endomit +*/ + +/*! + \page examples-widgets.html + \title Widgets Examples + + \contentspage Qt Examples + \nextpage Dialog Examples + + \image widget-examples.png + + Qt comes with a large range of standard widgets that users of modern + applications have come to expect. + + You can also develop your own custom widgets and controls, and use them + alongside standard widgets. + + It is even possible to provide custom styles and themes for widgets that can + be used to change the appearance of standard widgets and appropriately + written custom widgets. + + \list + \o \l{widgets/analogclock}{Analog Clock}\raisedaster + \o \l{widgets/calculator}{Calculator}\raisedaster + \o \l{widgets/calendarwidget}{Calendar Widget}\raisedaster + \o \l{widgets/charactermap}{Character Map}\raisedaster + \o \l{widgets/codeeditor}{Code Editor}\raisedaster + \o \l{widgets/digitalclock}{Digital Clock}\raisedaster + \o \l{widgets/groupbox}{Group Box}\raisedaster + \o \l{widgets/icons}{Icons}\raisedaster + \o \l{widgets/imageviewer}{Image Viewer}\raisedaster + \o \l{widgets/lineedits}{Line Edits}\raisedaster + \o \l{widgets/movie}{Movie} + \o \l{widgets/scribble}{Scribble}\raisedaster + \o \l{widgets/shapedclock}{Shaped Clock}\raisedaster + \o \l{widgets/sliders}{Sliders}\raisedaster + \o \l{widgets/spinboxes}{Spin Boxes}\raisedaster + \o \l{widgets/styles}{Styles}\raisedaster + \o \l{widgets/stylesheet}{Style Sheet}\raisedaster + \o \l{widgets/tablet}{Tablet}\raisedaster + \o \l{widgets/tetrix}{Tetrix}\raisedaster + \o \l{widgets/tooltips}{Tooltips}\raisedaster + \o \l{widgets/wiggly}{Wiggly}\raisedaster + \o \l{widgets/windowflags}{Window Flags}\raisedaster + \endlist +*/ + +/*! + \page examples-dialogs.html + \title Dialog Examples + + \previouspage Widgets Examples + \contentspage Qt Examples + \nextpage Main Window Examples + + \image dialog-examples.png + + Qt includes standard dialogs for many common operations, such as file + selection, printing, and color selection. + + Custom dialogs can also be created for specialized modal or modeless + interactions with users. + + \list + \o \l{dialogs/classwizard}{Class Wizard}\raisedaster + \o \l{dialogs/configdialog}{Config Dialog} + \o \l{dialogs/extension}{Extension}\raisedaster + \o \l{dialogs/findfiles}{Find Files}\raisedaster + \o \l{dialogs/licensewizard}{License Wizard}\raisedaster + \o \l{dialogs/standarddialogs}{Standard Dialogs} + \o \l{dialogs/tabdialog}{Tab Dialog}\raisedaster + \o \l{dialogs/trivialwizard}{Trivial Wizard} + \endlist +*/ + +/*! + \page examples-mainwindow.html + \title Main Window Examples + + \previouspage Dialog Examples + \contentspage Qt Examples + \nextpage Layout Examples + + \image mainwindow-examples.png + + All the standard features of application main windows are provided by Qt. + + Main windows can have pull down menus, tool bars, and dock windows. These + separate forms of user input are unified in an integrated action system that + also supports keyboard shortcuts and accelerator keys in menu items. + + \list + \o \l{mainwindows/application}{Application}\raisedaster + \o \l{mainwindows/dockwidgets}{Dock Widgets}\raisedaster + \o \l{mainwindows/mdi}{MDI} + \o \l{mainwindows/menus}{Menus}\raisedaster + \o \l{mainwindows/recentfiles}{Recent Files} + \o \l{mainwindows/sdi}{SDI} + \endlist +*/ + +/*! + \page examples-layouts.html + \title Layout Examples + + \previouspage Main Window Examples + \contentspage Qt Examples + \nextpage Item Views Examples + + \image layout-examples.png + + Qt uses a layout-based approach to widget management. Widgets are arranged in + the optimal positions in windows based on simple layout rules, leading to a + consistent look and feel. + + Custom layouts can be used to provide more control over the positions and + sizes of child widgets. + + \list + \o \l{layouts/basiclayouts}{Basic Layouts}\raisedaster + \o \l{layouts/borderlayout}{Border Layout} + \o \l{layouts/dynamiclayouts}{Dynamic Layouts} + \o \l{layouts/flowlayout}{Flow Layout} + \endlist +*/ + +/*! + \page examples-itemviews.html + \title Item Views Examples + + \previouspage Layout Examples + \contentspage Qt Examples + \nextpage Graphics View Examples + + \image itemview-examples.png + + Item views are widgets that typically display data sets. Qt 4's model/view + framework lets you handle large data sets by separating the underlying data + from the way it is represented to the user, and provides support for + customized rendering through the use of delegates. + + \list + \o \l{itemviews/addressbook}{Address Book}\raisedaster + \o \l{itemviews/basicsortfiltermodel}{Basic Sort/Filter Model} + \o \l{itemviews/chart}{Chart} + \o \l{itemviews/coloreditorfactory}{Color Editor Factory}\raisedaster + \o \l{itemviews/combowidgetmapper}{Combo Widget Mapper}\raisedaster + \o \l{itemviews/customsortfiltermodel}{Custom Sort/Filter Model}\raisedaster + \o \l{itemviews/dirview}{Dir View} + \o \l{itemviews/editabletreemodel}{Editable Tree Model}\raisedaster + \o \l{itemviews/fetchmore}{Fetch More}\raisedaster + \o \l{itemviews/frozencolumn}{Frozen Column}\raisedaster + \o \l{itemviews/pixelator}{Pixelator}\raisedaster + \o \l{itemviews/puzzle}{Puzzle} + \o \l{itemviews/simpledommodel}{Simple DOM Model}\raisedaster + \o \l{itemviews/simpletreemodel}{Simple Tree Model}\raisedaster + \o \l{itemviews/simplewidgetmapper}{Simple Widget Mapper}\raisedaster + \o \l{itemviews/spinboxdelegate}{Spin Box Delegate}\raisedaster + \o \l{itemviews/stardelegate}{Star Delegate}\raisedaster + \endlist +*/ + +/*! + \page examples-graphicsview.html + \title Graphics View Examples + + \previouspage Item Views Examples + \contentspage Qt Examples + \nextpage Painting Examples + + \image graphicsview-examples.png + + Qt is provided with a comprehensive canvas through the GraphicsView + classes. + + These examples demonstrate the fundamental aspects of canvas programming + with Qt. + + \list + \o \l{graphicsview/collidingmice}{Colliding Mice}\raisedaster + \o \l{graphicsview/diagramscene}{Diagram Scene}\raisedaster + \o \l{graphicsview/dragdroprobot}{Drag and Drop Robot} + \o \l{graphicsview/elasticnodes}{Elastic Nodes} + \o \l{graphicsview/portedasteroids}{Ported Asteroids} + \o \l{graphicsview/portedcanvas}{Ported Canvas} + \endlist +*/ + +/*! + \page examples-painting.html + \title Painting Examples + + \previouspage Graphics View Examples + \contentspage Qt Examples + \nextpage Rich Text Examples + + \image painting-examples.png + + Qt's painting system is able to render vector graphics, images, and outline + font-based text with sub-pixel accuracy accuracy using anti-aliasing to + improve rendering quality. + + These examples show the most common techniques that are used when painting + with Qt, from basic concepts such as drawing simple primitives to the use of + transformations. + + \list + \o \l{painting/basicdrawing}{Basic Drawing}\raisedaster + \o \l{painting/concentriccircles}{Concentric Circles}\raisedaster + \o \l{painting/fontsampler}{Font Sampler} + \o \l{painting/imagecomposition}{Image Composition}\raisedaster + \o \l{painting/painterpaths}{Painter Paths}\raisedaster + \o \l{painting/svggenerator}{SVG Generator}\raisedaster + \o \l{painting/svgviewer}{SVG Viewer} + \o \l{painting/transformations}{Transformations}\raisedaster + \endlist +*/ + +/*! + \page examples-richtext.html + \title Rich Text Examples + + \previouspage Painting Examples + \contentspage Qt Examples + \nextpage Desktop Examples + + \image richtext-examples.png + + Qt provides powerful document-oriented rich text engine that supports Unicode + and right-to-left scripts. Documents can be manipulated using a cursor-based + API, and their contents can be imported and exported as both HTML and in a + custom XML format. + + \list + \o \l{richtext/calendar}{Calendar}\raisedaster + \o \l{richtext/orderform}{Order Form}\raisedaster + \o \l{richtext/syntaxhighlighter}{Syntax Highlighter}\raisedaster + \o \l{richtext/textobject}{Text Object}\raisedaster + \endlist +*/ + +/*! + \page examples-desktop.html + \title Desktop Examples + + \previouspage Rich Text Examples + \contentspage Qt Examples + \nextpage Drag and Drop Examples + + \image desktop-examples.png + + Qt provides features to enable applications to integrate with the user's + preferred desktop environment. + + Features such as system tray icons, access to the desktop widget, and + support for desktop services can be used to improve the appearance of + applications and take advantage of underlying desktop facilities. + + \list + \o \l{desktop/screenshot}{Screenshot}\raisedaster + \o \l{desktop/systray}{System Tray}\raisedaster + \endlist +*/ + +/*! + \page examples-draganddrop.html + \title Drag and Drop Examples + + \previouspage Desktop Examples + \contentspage Qt Examples + \nextpage Threading and Concurrent Programming Examples + + \image draganddrop-examples.png + + Qt supports native drag and drop on all platforms via an extensible + MIME-based system that enables applications to send data to each other in the + most appropriate formats. + + Drag and drop can also be implemented for internal use by applications. + + \list + \o \l{draganddrop/delayedencoding}{Delayed Encoding}\raisedaster + \o \l{draganddrop/draggableicons}{Draggable Icons} + \o \l{draganddrop/draggabletext}{Draggable Text} + \o \l{draganddrop/dropsite}{Drop Site} + \o \l{draganddrop/fridgemagnets}{Fridge Magnets}\raisedaster + \o \l{draganddrop/puzzle}{Drag and Drop Puzzle} + \endlist +*/ + +/*! + \page examples-threadandconcurrent.html + \title Threading and Concurrent Programming Examples + + \previouspage Drag and Drop Examples + \contentspage Qt Examples + \nextpage Tools Examples + + \image thread-examples.png + + Qt 4 makes it easier than ever to write multithreaded applications. More + classes have been made usable from non-GUI threads, and the signals and slots + mechanism can now be used to communicate between threads. + + Additionally, it is now possible to move objects between threads. + + \list + \o \l{threads/queuedcustomtype}{Queued Custom Type}\raisedaster + \o \l{threads/mandelbrot}{Mandelbrot}\raisedaster + \o \l{threads/semaphores}{Semaphores}\raisedaster + \o \l{threads/waitconditions}{Wait Conditions}\raisedaster + \endlist + + The QtConcurrent namespace includes a collection of classes and functions + for straightforward concurrent programming. + + These examples show how to apply the basic techniques of concurrent + programming to simple problems. + + \list + \o \l{qtconcurrent/imagescaling}{QtConcurrent Asynchronous Image Scaling} + \o \l{qtconcurrent/map}{QtConcurrent Map} + \o \l{qtconcurrent/progressdialog}{QtConcurrent Progress Dialog} + \o \l{qtconcurrent/runfunction}{QtConcurrent Run Function} + \o \l{qtconcurrent/wordcount}{QtConcurrent Word Count} + \endlist +*/ + +/*! + \page examples.tools.html + \title Tools Examples + + \previouspage Threading and Concurrent Programming Examples + \contentspage Qt Examples + \nextpage Network Examples + + \image tool-examples.png + + Qt is equipped with a range of capable tool classes, from containers and + iterators to classes for string handling and manipulation. + + Other classes provide application infrastructure support, handling plugin + loading and managing configuration files. + + \list + \o \l{tools/codecs}{Codecs} + \o \l{tools/completer}{Completer}\raisedaster + \o \l{tools/customcompleter}{Custom Completer}\raisedaster + \o \l{tools/customtype}{Custom Type}\raisedaster + \o \l{tools/customtypesending}{Custom Type Sending}\raisedaster + \o \l{tools/echoplugin}{Echo Plugin}\raisedaster + \o \l{tools/i18n}{I18N} + \o \l{tools/plugandpaint}{Plug & Paint}\raisedaster + \o Plug & Paint Plugins: \l{tools/plugandpaintplugins/basictools}{Basic Tools}\raisedaster + and \l{tools/plugandpaintplugins/extrafilters}{Extra Filters}\raisedaster + \o \l{tools/regexp}{RegExp} + \o \l{tools/settingseditor}{Settings Editor} + \o \l{tools/styleplugin}{Style Plugin}\raisedaster + \o \l{tools/treemodelcompleter}{Tree Model Completer}\raisedaster + \o \l{tools/undoframework}{Undo Framework}\raisedaster + \endlist +*/ + +/*! + \page examples-network.html + \title Network Examples + + \previouspage Tools Examples + \contentspage Qt Examples + \nextpage Inter-Process Communication Examples + + \image network-examples.png + + Qt is provided with an extensive set of network classes to support both + client-based and server side network programming. + + These examples demonstrate the fundamental aspects of network programming + with Qt. + + \list + \o \l{network/blockingfortuneclient}{Blocking Fortune Client}\raisedaster + \o \l{network/broadcastreceiver}{Broadcast Receiver} + \o \l{network/broadcastsender}{Broadcast Sender} + \o \l{network/network-chat}{Network Chat} + \o \l{network/fortuneclient}{Fortune Client}\raisedaster + \o \l{network/fortuneserver}{Fortune Server}\raisedaster + \o \l{network/ftp}{FTP}\raisedaster + \o \l{network/http}{HTTP} + \o \l{network/loopback}{Loopback} + \o \l{network/threadedfortuneserver}{Threaded Fortune Server}\raisedaster + \o \l{network/torrent}{Torrent} + \o \l{network/googlesuggest}{Google Suggest} + \endlist +*/ + +/*! + \page examples-ipc.html + \title Inter-Process Communication Examples + + \previouspage Network Examples + \contentspage Qt Examples + \nextpage OpenGL Examples + + \image ipc-examples.png + + \list + \o \l{ipc/localfortuneclient}{Local Fortune Client}\raisedaster + \o \l{ipc/localfortuneserver}{Local Fortune Server}\raisedaster + \o \l{ipc/sharedmemory}{Shared Memory}\raisedaster + \endlist +*/ + +/*! + \page examples-opengl.html + \title OpenGL Examples + + \previouspage Inter-Process Communication Examples + \contentspage Qt Examples + \nextpage Multimedia Examples + + \image opengl-examples.png + + Qt provides support for integration with OpenGL implementations on all + platforms, giving developers the opportunity to display hardware accelerated + 3D graphics alongside a more conventional user interface. + + These examples demonstrate the basic techniques used to take advantage of + OpenGL in Qt applications. + + \list + \o \l{opengl/2dpainting}{2D Painting}\raisedaster + \o \l{opengl/framebufferobject}{Framebuffer Object} + \o \l{opengl/framebufferobject2}{Framebuffer Object 2} + \o \l{opengl/grabber}{Grabber} + \o \l{opengl/hellogl}{Hello GL}\raisedaster + \o \l{opengl/overpainting}{Overpainting}\raisedaster + \o \l{opengl/pbuffers}{Pixel Buffers} + \o \l{opengl/pbuffers2}{Pixel Buffers 2} + \o \l{opengl/samplebuffers}{Sample Buffers} + \o \l{opengl/textures}{Textures} + \endlist +*/ + +/*! + \page examples-multimedia.html + \title Multimedia Examples + + \previouspage OpenGL Examples + \contentspage Qt Examples + \nextpage SQL Examples + + \image phonon-examples.png + + \section1 Multimedia + + Qt provides low-level audio support on linux,windows and mac platforms by default and + an audio plugin API to allow developers to implement there own audio support for + custom devices and platforms. + + These examples demonstrate the basic techniques used to take advantage of + Audio API in Qt applications. + + \list + \o \l{multimedia/audio/audiodevices}{Audio Devices} + \o \l{multimedia/audio/audiooutput}{Audio Output} + \o \l{multimedia/audio/audioinput}{Audio Input} + \endlist + + \section1 Phonon + + The Phonon Multimedia Framework brings multimedia support to Qt applications. + + The examples and demonstrations provided show how to play music and movies + using the Phonon API. + + \list + \o \l{phonon/capabilities}{Capabilities}\raisedaster + \o \l{phonon/musicplayer}{Music Player}\raisedaster + \endlist +*/ + +/*! + \page examples-sql.html + \title SQL Examples + + \previouspage Multimedia Examples + \contentspage Qt Examples + \nextpage XML Examples + + \image sql-examples.png + + Qt provides extensive database interoperability, with support for products + from both open source and proprietary vendors. + + SQL support is integrated with Qt's model/view architecture, making it easier + to provide GUI integration for your database applications. + + \list + \o \l{sql/cachedtable}{Cached Table}\raisedaster + \o \l{sql/drilldown}{Drill Down}\raisedaster + \o \l{sql/querymodel}{Query Model} + \o \l{sql/relationaltablemodel}{Relational Table Model} + \o \l{sql/tablemodel}{Table Model} + \o \l{sql/sqlwidgetmapper}{SQL Widget Mapper}\raisedaster + \endlist +*/ + + +/*! + \page examples-xml.html + \title XML Examples + + \previouspage SQL Examples + \contentspage Qt Examples + \nextpage Qt Designer Examples + + \image xml-examples.png XML + + XML parsing and handling is supported through SAX and DOM compliant APIs + as well as streaming classes. + + \list + \o \l{xml/dombookmarks}{DOM Bookmarks} + \o \l{xml/saxbookmarks}{SAX Bookmarks} + \o \l{xml/streambookmarks}{QXmlStream Bookmarks}\raisedaster + \o \l{xml/rsslisting}{RSS-Listing} + \o \l{xml/xmlstreamlint}{XML Stream Lint Example}\raisedaster + \endlist + + The XQuery/XPath and XML Schema engines in the QtXmlPatterns modules + provide classes for querying XML files and custom data models. + + \list + \o \l{xmlpatterns/recipes}{Recipes} + \o \l{xmlpatterns/filetree}{File System Example} + \o \l{xmlpatterns/qobjectxmlmodel}{QObject XML Model Example} + \o \l{xmlpatterns/xquery/globalVariables}{C++ Source Code Analyzer Example} + \o \l{xmlpatterns/trafficinfo}{Traffic Info}\raisedaster + \o \l{xmlpatterns/schema}{XML Schema Validation}\raisedaster + \endlist +*/ + +/*! + \page examples-designer.html + \title Qt Designer Examples + + \previouspage XML Examples + \contentspage Qt Examples + \nextpage UiTools Examples + + \image designer-examples.png QtDesigner + + Qt Designer is a capable graphical user interface designer that lets you + create and configure forms without writing code. GUIs created with + Qt Designer can be compiled into an application or created at run-time. + + \list + \o \l{designer/calculatorbuilder}{Calculator Builder}\raisedaster + \o \l{designer/calculatorform}{Calculator Form}\raisedaster + \o \l{designer/customwidgetplugin}{Custom Widget Plugin}\raisedaster + \o \l{designer/taskmenuextension}{Task Menu Extension}\raisedaster + \o \l{designer/containerextension}{Container Extension}\raisedaster + \o \l{designer/worldtimeclockbuilder}{World Time Clock Builder}\raisedaster + \o \l{designer/worldtimeclockplugin}{World Time Clock Plugin}\raisedaster + \endlist +*/ + +/*! + \page examples-uitools.html + \title UiTools Examples + + \previouspage Qt Designer Examples + \contentspage Qt Examples + \nextpage Qt Linguist Examples + + \image uitools-examples.png UiTools + + \list + \o \l{uitools/multipleinheritance}{Multiple Inheritance}\raisedaster + \o \l{uitools/textfinder}{Text Finder}\raisedaster + \endlist +*/ + +/*! + \page examples-linguist.html + \title Qt Linguist Examples + + \previouspage UiTools Examples + \contentspage Qt Examples + \nextpage Qt Script Examples + + \image linguist-examples.png + + Internationalization is a core feature of Qt. These examples show how to + access translation and localization facilities at run-time. + + \list + \o \l{linguist/hellotr}{Hello tr()}\raisedaster + \o \l{linguist/arrowpad}{Arrow Pad}\raisedaster + \o \l{linguist/trollprint}{Troll Print}\raisedaster + \endlist +*/ + +/*! + \page examples-script.html + \title Qt Script Examples + + \previouspage Qt Linguist Examples + \contentspage Qt Examples + \nextpage WebKit Examples + + \image qtscript-examples.png QtScript + + Qt is provided with a powerful embedded scripting environment through the QtScript + classes. + + These examples demonstrate the fundamental aspects of scripting applications + with Qt. + + \list + \o \l{script/calculator}{Calculator}\raisedaster + \o \l{script/context2d}{Context2D}\raisedaster + \o \l{script/defaultprototypes}{Default Prototypes}\raisedaster + \o \l{script/helloscript}{Hello Script}\raisedaster + \o \l{script/qstetrix}{Qt Script Tetrix}\raisedaster + \o \l{script/customclass}{Custom Script Class}\raisedaster + \endlist +*/ + +/*! + \page examples-webkit.html + \title WebKit Examples + + \previouspage Qt Script Examples + \contentspage Qt Examples + \nextpage Help System Examples + + \image webkit-examples.png WebKit + + Qt provides an integrated Web browser component based on WebKit, the popular + open source browser engine. + + These examples and demonstrations show a range of different uses for WebKit, + from displaying Web pages within a Qt user interface to an implementation of + a basic function Web browser. + + \list + \o \l{webkit/previewer}{Previewer}\raisedaster + \o \l{webkit/formextractor}{Form Extractor} + \o \l{webkit/googlechat}{Google Chat} + \o \l{webkit/fancybrowser}{Fancy Browser} + \endlist +*/ + +/*! + \page examples-helpsystem.html + \title Help System Examples + + \previouspage WebKit Examples + \contentspage Qt Examples + \nextpage State Machine Examples + + \image assistant-examples.png HelpSystem + + Support for interactive help is provided by the Qt Assistant application. + Developers can take advantages of the facilities it offers to display + specially-prepared documentation to users of their applications. + + \list + \o \l{help/simpletextviewer}{Simple Text Viewer}\raisedaster + \endlist +*/ + +/*! + \page examples-statemachine.html + \title State Machine Examples + + \previouspage Help System Examples + \contentspage Qt Examples + \nextpage Animation Framework Examples + + \image statemachine-examples.png StateMachine + + Qt provides a powerful hierarchical finite state machine through the Qt State + Machine classes. + + These examples demonstrate the fundamental aspects of implementing + Statecharts with Qt. + + \list + \o \l{statemachine/eventtransitions}{Event Transitions}\raisedaster + \o \l{statemachine/factorial}{Factorial States}\raisedaster + \o \l{statemachine/pingpong}{Ping Pong States}\raisedaster + \o \l{statemachine/rogue}{Rogue}\raisedaster + \o \l{statemachine/trafficlight}{Traffic Light}\raisedaster + \o \l{statemachine/twowaybutton}{Two-way Button}\raisedaster + \endlist +*/ + +/*! + \page examples-animation.html + \title Animation Framework Examples + + \previouspage State Machine Examples + \contentspage Qt Examples + \nextpage Qt for Embedded Linux Examples + + \image animation-examples.png Animation + + \list + \o \l{animation/moveblocks}{Move Blocks}\raisedaster + \o \l{animation/stickman}{Stick man}\raisedaster + \endlist +*/ + +/*! + \page examples-embeddedlinux.html + \title Qt for Embedded Linux Examples + + \previouspage Animation Framework Examples + \contentspage Qt Examples + \nextpage ActiveQt Examples + + \image qt-embedded-examples.png QtEmbedded + + These examples show how to take advantage of features specifically designed + for use on systems with limited resources, specialized hardware, and small + screens. + + \list + \o \l{qws/svgalib}{Accelerated Graphics Driver}\raisedaster + \o \l{qws/dbscreen}{Double Buffered Graphics Driver}\raisedaster + \o \l{qws/mousecalibration}{Mouse Calibration}\raisedaster + \o \l{qws/ahigl}{OpenGL for Embedded Systems}\raisedaster + \o \l{qws/simpledecoration}{Simple Decoration}\raisedaster + \endlist +*/ + +/*! + \page examples-activeqt.html + \title ActiveQt Examples + + \previouspage Qt for Embedded Linux Examples + \contentspage Qt Examples + \nextpage D-Bus Examples + + \image activeqt-examples.png ActiveQt + + \list + \o \l{activeqt/comapp}{COM App}\raisedaster + \o \l{Dot Net Example (ActiveQt)}{Dot Net}\raisedaster + \o \l{activeqt/hierarchy}{Hierarchy}\raisedaster + \o \l{activeqt/menus}{Menus}\raisedaster + \o \l{activeqt/multiple}{Multiple}\raisedaster + \o \l{activeqt/opengl}{OpenGL}\raisedaster + \o \l{activeqt/qutlook}{Qutlook}\raisedaster + \o \l{activeqt/simple}{Simple}\raisedaster + \o \l{activeqt/webbrowser}{Web Browser}\raisedaster + \o \l{activeqt/wrapper}{Wrapper}\raisedaster + \endlist +*/ + +/*! + \page examples-dbus.html + \title D-Bus Examples + + \previouspage ActiveQt Examples + \contentspage Qt Examples + \nextpage Qt Quarterly + + \list + \o \l{dbus/dbus-chat}{Chat} + \o \l{dbus/complexpingpong}{Complex Ping Pong} + \o \l{dbus/listnames}{List Names} + \o \l{dbus/pingpong}{Ping Pong} + \o \l{dbus/remotecontrolledcar}{Remote Controlled Car} + \endlist +*/ diff --git a/doc/src/getting-started/how-to-learn-qt.qdoc b/doc/src/getting-started/how-to-learn-qt.qdoc new file mode 100644 index 0000000..2a1e383 --- /dev/null +++ b/doc/src/getting-started/how-to-learn-qt.qdoc @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page how-to-learn-qt.html + \title How to Learn Qt + \brief Links to guides and resources for learning Qt. + + \nextpage Tutorials + + We assume that you already know C++ and will be using it for Qt + development. See the \l{Qt website} for more information about + using other programming languages with Qt. + + The best way to learn Qt is to read the official Qt book, + \l{http://www.amazon.com/gp/product/0132354160/ref=ase_trolltech/}{C++ + GUI Programming with Qt 4, Second Edition} (ISBN 0-13-235416-0). This book + provides comprehensive coverage of Qt programming all the way + from "Hello Qt" to advanced features such as multithreading, 2D and + 3D graphics, networking, item view classes, and XML. (The first edition, + which is based on Qt 4.1, is available + \l{http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip}{online}.) + + If you want to program purely in C++, designing your interfaces + in code without the aid of any design tools, take a look at the + \l{Tutorials}. These are designed to get you into Qt programming, + with an emphasis on working code rather than being a tour of features. + + If you want to design your user interfaces using a design tool, then + read at least the first few chapters of the \l{Qt Designer manual}. + + By now you'll have produced some small working applications and have a + broad feel for Qt programming. You could start work on your own + projects straight away, but we recommend reading a couple of key + overviews to deepen your understanding of Qt: \l{Qt Object Model} + and \l{Signals and Slots}. + + At this point, we recommend looking at the + \l{All Overviews and HOWTOs}{overviews} and reading those that are + relevant to your projects. You may also find it useful to browse the + source code of the \l{Qt Examples}{examples} that have things in + common with your projects. You can also read Qt's source code since + this is supplied. + + \table 50% + \header + \o {2,1} Getting an Overview + \row + \o \inlineimage qtdemo-small.png + \o + If you run the \l{Examples and Demos Launcher}, you'll see many of Qt's + widgets in action. + + The \l{Qt Widget Gallery} also provides overviews of selected Qt + widgets in each of the styles used on various supported platforms. + \endtable + + Qt comes with extensive documentation, with hypertext + cross-references throughout, so you can easily click your way to + whatever interests you. The part of the documentation that you'll + probably use the most is the \link index.html API + Reference\endlink. Each link provides a different way of + navigating the API Reference; try them all to see which work best + for you. You might also like to try \l{Qt Assistant}: + this tool is supplied with Qt and provides access to the entire + Qt API, and it provides a full text search facility. + + There are also a growing number of books about Qt programming; see + \l{Books about Qt Programming} for a complete list of Qt books, + including translations to various languages. + + Another valuable source of example code and explanations of Qt + features is the archive of articles from \l {http://qt.nokia.com/doc/qq} + {Qt Quarterly}, a quarterly newsletter for users of Qt. + + For documentation on specific Qt modules and other guides, refer to + \l{All Overviews and HOWTOs}. + + Good luck, and have fun! +*/ diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc new file mode 100644 index 0000000..9bf774b --- /dev/null +++ b/doc/src/getting-started/installation.qdoc @@ -0,0 +1,983 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/**************************************************************************** +** Please remember to update the corresponding INSTALL files. +****************************************************************************/ + +/*! +\group installation +\title Installation +\brief Installing Qt on supported platforms. + +The installation procedure is different on each Qt platform. +Please follow the instructions for your platform from the following list. + +\generatelist{related} +*/ + +/*! \page install-x11.html +\title Installing Qt on X11 Platforms +\ingroup installation +\brief How to install Qt on platforms with X11. +\previouspage Installation + +\note Qt for X11 has some requirements that are given in more detail +in the \l{Qt for X11 Requirements} document. + +\list 1 +\o If you have the commercial edition of Qt, install your license + file as \c{$HOME/.qt-license}. + + For the open source version you do not need a license file. + +\o Unpack the archive if you have not done so already. For example, + if you have the \c{qt-x11-opensource-desktop-%VERSION%.tar.gz} + package, type the following commands at a command line prompt: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 0 + + This creates the directory \c{/tmp/qt-x11-opensource-desktop-%VERSION%} + containing the files from the archive. We only support the GNU version of + the tar archiving utility. Note that on some systems it is called gtar. + +\o Building + + To configure the Qt library for your machine type, run the + \c{./configure} script in the package directory. + + By default, Qt is configured for installation in the + \c{/usr/local/Trolltech/Qt-%VERSION%} directory, but this can be + changed by using the \c{-prefix} option. + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 1 + + Type \c{./configure -help} to get a list of all available options. + + To create the library and compile all the demos, examples, tools, + and tutorials, type: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 2 + + If \c{-prefix} is outside the build directory, you need to install + the library, demos, examples, tools, and tutorials in the appropriate + place. To do this, type: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 3 + + , as root if necessary. + + Note that on some systems the make utility is named differently, + e.g. gmake. The configure script tells you which make utility to + use. + + \bold{Note:} If you later need to reconfigure and rebuild Qt from the + same location, ensure that all traces of the previous configuration are + removed by entering the build directory and typing \c{make confclean} + before running \c configure again. + +\o Environment variables + + In order to use Qt, some environment variables needs to be + extended. + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 4 + + This is done like this: + + In \c{.profile} (if your shell is bash, ksh, zsh or sh), add the + following lines: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 5 + + In \c{.login} (in case your shell is csh or tcsh), add the following line: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 6 + + If you use a different shell, please modify your environment + variables accordingly. + + For compilers that do not support rpath you must also extended the + \c LD_LIBRARY_PATH environment variable to include + \c{/usr/local/Trolltech/Qt-%VERSION%/lib}. On Linux with GCC this step + is not needed. + +\o That's all. Qt is now installed. + + If you are new to Qt, we suggest that you take a look at the demos + and examples to see Qt in action. Run the Qt Examples and Demos + either by typing \c qtdemo on the command line or through the + desktop's Main menu. + + You might also want to try the following links: + + \list + \o \l{Configuring Qt} + \o \l{How to Learn Qt} + \o \l{Tutorials} + \o \l{Developer Zone} + \o \l{Deploying Qt Applications} + \endlist +\endlist + + We hope you will enjoy using Qt. Good luck! + +*/ + +/*! +\page install-win.html +\title Installing Qt on Windows +\ingroup installation +\brief How to install Qt on Windows. +\previouspage Installation + +\note Qt for Windows has some requirements that are given in more detail +in the \l{Qt for Windows Requirements} document. + +\table +\row \o \bold{Notes:} +\list +\o If you have obtained a binary package for this platform, +consult the installation instructions provided instead of the ones in +this document. +\o \l{Open Source Versions of Qt} is not officially supported for use with +any version of Visual Studio. Integration with Visual Studio is available +as part of the \l{Qt Commercial Editions}. + +\endlist +\endtable + +\list 1 +\o If you have the commercial edition of Qt, copy the license file + from your account on dist.trolltech.com into your home directory + (this may be known as the \c userprofile environment variable) and + rename it to \c{.qt-license}. This renaming process must be done + using a \e{command prompt} on Windows, \bold{not} with Windows Explorer. + For example on Windows 2000, \c{%USERPROFILE%} should be something + like \c{C:\Documents and Settings\username} + + For the open source version you do not need a license file. + +\o Uncompress the files into the directory you want Qt installed; + e.g. \c{C:\Qt\%VERSION%}. + + \note The install path must not contain any spaces or Windows specific + file system characters. + +\o Environment variables + + In order to build and use Qt, the \c PATH environment variable needs to be + extended: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 7 + + This is done by adding \c{c:\Qt\%VERSION%\bin} to the \c PATH variable. + + For newer versions of Windows, \c PATH can be extended through + the \menu{Control Panel|System|Advanced|Environment variables} menu. + + You may also need to ensure that the locations of your compiler and + other build tools are listed in the \c PATH variable. This will depend + on your choice of software development environment. + + \bold{Note}: If you don't use the configured shells, which is + available in the application menu, in the \l{Open Source Versions of Qt}, + \c configure requires that \c sh.exe is not in the path + or that it is run from \c msys. This also goes for mingw32-make. + +\o Building + + To configure the Qt library for your machine, type the following command + in a \bold{Visual Studio} command prompt: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 8 + + Type \c{configure -help} to get a list of all available options. + + If you have multiple compilers installed, and want to build the Qt library + using a specific compiler, you must specify a \c qmake specification. + This is done by pasing \c{-platform <spec>} to configure; for example: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 9 + + In some cases you need to set up the compilation environment before running + configure in order to use the right compiler. For instance, you need to do this + if you have Visual Studio 2005 installed and want to compile Qt using the x64 + compiler because the 32-bit and 64-bit compiler both use the same + \c qmake specification file. + This is usually done by selecting + \menu{Microsoft Visual Studio 2005|Visual Studio Tools|<Command Prompt>} + from the \gui Start menu. + + The actual commands needed to build Qt depends on your development + system. For Microsoft Visual Studio to create the library and + compile all the demos, examples, tools and tutorials type: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 10 + + \note If you later need to reconfigure and rebuild Qt from the + same location, ensure that all traces of the previous configuration are + removed by entering the build directory and typing \c{nmake distclean} + before running \c configure again. + +\o That's all. Qt is now installed. + + If you are new to Qt, we suggest that you take a look at the demos + and examples to see Qt in action. Run the Qt Examples and Demos + either by typing \c qtdemo on the command line or through the + desktop's Start menu. + + You might also want to try the following links: + + \list + \o \l{How to Learn Qt} + \o \l{Tutorials} + \o \l{Developer Zone} + \o \l{Deploying Qt Applications} + \endlist + +\endlist + + We hope you will enjoy using Qt. Good luck! + +*/ + +/*! \page install-mac.html +\title Installing Qt on Mac OS X +\ingroup installation +\brief How to install Qt on Mac OS X. +\previouspage Installation + +\note Qt for Mac OS X has some requirements that are given in more detail +in the \l{Qt for Mac OS X Requirements} document. + +\bold{Note for the binary package}: If you have the binary package, simply double-click on the Qt.mpkg +and follow the instructions to install Qt. You can later run the \c{uninstall-qt.py} +script to uninstall the binary package. The script is located in /Developer/Tools and +must be run as root. + +The following instructions describe how to install Qt from the source package. + +\list 1 +\o If you have the commercial edition of Qt, install your license + file as \c{$HOME/.qt-license}. + + For the open source version you do not need a license file. + +\o Unpack the archive if you have not done so already. For example, + if you have the \c{qt-mac-opensource-desktop-%VERSION%.tar.gz} + package, type the following commands at a command line prompt: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 11 + + This creates the directory \c{/tmp/qt-mac-opensource-desktop-%VERSION%} + containing the files from the archive. + +\o Building + + To configure the Qt library for your machine type, run the + \c{./configure} script in the package directory. + + By default, Qt is configured for installation in the + \c{/usr/local/Trolltech/Qt-%VERSION%} directory, but this can be + changed by using the \c{-prefix} option. + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 12 + + Type \c{./configure -help} to get a list of all available options. + + Note that you will need to specify \c{-universal} if you want to + build universal binaries, and also supply a path to the \c{-sdk} + option if your development machine has a PowerPC CPU. By default, + Qt is built as a framework, but you can built it as a set of + dynamic libraries (dylibs) by specifying the \c{-no-framework} + option. + + Qt can also be configured to be built with debugging symbols. This + process is described in detail in the \l{Debugging Techniques} + document. + + To create the library and compile all the demos, examples, tools, + and tutorials, type: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 13 + + If \c{-prefix} is outside the build directory, you need to install + the library, demos, examples, tools, and tutorials in the appropriate + place. To do this, type: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 14 + + as root, if neccessary (note that this requires that you have administrator access + to your machine). + + There is a potential race condition when running make install with multiple + jobs. It is best to only run one make job (-j1) for the install. + + \bold{Note:} If you later need to reconfigure and rebuild Qt from the + same location, ensure that all traces of the previous configuration are + removed by entering the build directory and typing \c{make confclean} + before running \c configure again. + +\o Environment variables + + In order to use Qt, some environment variables need to be + extended. + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 15 + + This is done like this: + + In \c{.profile} (if your shell is bash), add the following lines: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 16 + + In \c{.login} (in case your shell is csh or tcsh), add the following line: + +\snippet doc/src/snippets/code/doc_src_installation.qdoc 17 + + If you use a different shell, please modify your environment + variables accordingly. + +\o That's all. Qt is now installed. + + If you are new to Qt, we suggest that you take a look at the demos + and examples to see Qt in action. Run the Qt Examples and Demos + either by typing \c qtdemo on the command line or through the + desktop's Start menu. + + You might also want to try the following links: + + \list + \o \l{How to Learn Qt} + \o \l{Tutorials} + \o \l{Developer Zone} + \o \l{Deploying Qt Applications} + \endlist +\endlist + + We hope you will enjoy using Qt. Good luck! + +*/ + +/*! \page install-wince.html +\title Installing Qt on Windows CE +\ingroup installation +\ingroup qtce +\brief How to install Qt on Windows CE. +\previouspage Installation + +\note Qt for Windows CE has some requirements that are given in more detail +in the \l{Qt for Windows CE Requirements} document. + +\list 1 + \o Uncompress the files into the directory you want to install Qt into; + e.g., \c{C:\Qt\%VERSION%}. + + \note The install path must not contain any spaces. + + \o Environment variables + + In order to build and use Qt, the \c PATH environment variable needs + to be extended: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 18 + + This is done by adding \c{c:\Qt\%VERSION%\bin} to the \c PATH variable. + + For newer versions of Windows, \c PATH can be extended through + "Control Panel->System->Advanced->Environment variables" and for + older versions by editing \c{c:\autoexec.bat}. + + Make sure the enviroment variables for your compiler are set. + Visual Studio includes \c{vcvars32.bat} for that purpose - or simply + use the "Visual Studio Command Prompt" from the Start menu. + + \o Configuring Qt + + To configure Qt for Windows Mobile 5.0 for Pocket PC, type the + following: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 19 + + If you want to configure Qt for another platform or with other + options, type \c{configure -help} to get a list of all available + options. See the \c README file for the list of supported platforms. + + + \o Building Qt + + Now, to build Qt you first have to update your \c PATH, \c INCLUDE + and \c LIB paths to point to the correct resources for your target + platforms. For a default installation of the Windows Mobile 5.0 + Pocket PC SDK, this is done with the following commands: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 20 + + We provide a convenience script for this purpose, called \c{setcepaths}. + Simply type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 21 + + Then to build Qt type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 22 + + \o That's all. Qt is now installed. + + To get started with Qt, you can check out the examples found in the + \c{examples} directory of your Qt installation. The documentation can + be found in \c{doc\html}. + + \bold{Remember:} If you reconfigure Qt for a different platform, + make sure you start with a new clean console to get rid of the + platform dependent include directories. + + The links below provide further information for using Qt: + \list + \o \l{How to Learn Qt} + \o \l{Tutorials} + \o \l{Developer Zone} + \o \l{Deploying Qt Applications} + \endlist + + You might also want to try the following Windows CE specific links: + \list + \o \l{Windows CE - Introduction to using Qt} + \o \l{Windows CE - Working with Custom SDKs} + \o \l{Windows CE - Using shadow builds} + \endlist + + Information on feature and performance tuning for embedded builds can + be found on the following pages: + \list + \o \l{Fine-Tuning Features in Qt} + \o \l{Qt Performance Tuning} + \endlist +\endlist + + We hope you will enjoy using Qt. Good luck! +*/ + +/*! \page install-S60-installer.html + +\title Installing Qt on S60 using binary package +\ingroup qts60 +\brief How to install Qt on S60 using the binary package. + +\note Qt for S60 has some requirements that are given in more detail +in the \l{Qt for S60 Requirements} document. + +\list 1 + + \o Install Qt + + Run \c{qt-s60-%VERSION%.exe} and follow the instructions. + + \note Qt must be installed on the same drive as the S60 SDK you are + using, and the install path must not contain any spaces. + + \o Running Qt demos + + We've included a subset of the Qt demos in this package for you + to try out. An excellent starting point is the "fluidlauncher" + demo. To run the demo on a real device, you first have to install + \c{qt_libs.sis} and \c{fluidlauncher.sis} found in the Qt installation + directory. Begin by connecting your phone using the USB cable and + selecting "PC Suite mode". In Windows Explorer right click on the + \c{.sis} files and select "Install with Nokia Application Installer" + and follow the instructions. + + To run the demos and examples on the emulator, you need to build them first. + Open the "Qt for S60 Command Prompt" from the Start menu and type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 25 + + To run the demos on the emulator simply navigate to the directory of the demo + you want to see and run: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 27 + + For more information about building and running Qt programs on S60, + see \l{S60 - Introduction to using Qt}. + + We hope you will enjoy using Qt. + +\endlist + +*/ +/*! \page install-S60.html + +\title Installing Qt on S60 +\ingroup installation +\ingroup qts60 +\brief How to install Qt on S60 + +\note Qt for S60 has some requirements that are given in more detail +in the \l{Qt for S60 Requirements} document. + +\note \bold {This document describes how to install and configure Qt for S60 from scratch. +If you are using pre-built binaries, follow the instructions +\l{Installing Qt on S60 using binary package}{here}.} + +\list 1 + + \o Install Qt + + Uncompress the package into the directory you want Qt installed, + e.g. \c{C:\Qt\%VERSION%}. + + \note Qt must be installed on the same drive as the S60 SDK you are + using, and the install path must not contain any spaces. + + \o Environment variables + + In order to build and use Qt, the \c PATH environment variable needs + to be extended: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 18 + + This is done by adding \c{c:\Qt\%VERSION%\bin} to the \c PATH variable. + + On Windows the PATH can be extended by navigating to + "Control Panel->System->Advanced->Environment variables". + + In addition, you must configure the environment for use with the S60 + emulator. This is done by locating the Carbide.c++ submenu on the Start + menu, and choosing "Configure environment for WINSCW command line". + + \o Configure Qt + + To configure Qt for S60, do: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 23 + + For other options, type \c{configure -help} to get a list of all available + options. + + \o Build Qt + + To build Qt for the device, type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 28 + + To build Qt for the emulator, type: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 24 + + Congratulations, Qt is now ready to use. + + \o Running Qt demos + + We've included a subset of the Qt demos in this package for you + to try out. An excellent starting point is the "fluidlauncher" + demo. To run the demo on a real device, you first have to install + the Qt libraries on the device: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 29 + + \note You will need to supply certificate that allows installation + of binaries with "All -Tcb" capability to your device. + + Similarly, install fluidlauncher to the device: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 30 + + This will create a self-signed \c fluidlauncher_armv5_urel.sis and + install it to your device. + + To run the demos on the emulator simply navigate to the directory of the demo + you want to see and run: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 27 + + For more information about building and running Qt programs on S60, + see \l{S60 - Introduction to using Qt}. + + We hope you will enjoy using Qt. + +\endlist + +*/ +/*! + \page requirements.html + \title General Qt Requirements + \ingroup installation + \brief Outlines the general requirements and dependencies needed to install Qt. + + This page describes the specific requirements of libraries and components on which + Qt depends. For information about installing Qt, see the \l{Installation} page. + + For information about the platforms that Qt supports, see the \l{Supported Platforms} + page. + + \section1 OpenSSL (version 0.9.7 or later) + + Support for \l{SSL}{Secure Sockets Layer (SSL)} communication is provided by the + \l{OpenSSL Toolkit}, which must be obtained separately. + + \section1 Platform-Specific Requirements + + Each platform has its own specific set of dependencies. Please see the relevant + page for more details about the components that are required to build and install + Qt on your platform. + + \list + \o \l{Qt for Embedded Linux Requirements} + \o \l{Qt for Mac OS X Requirements} + \o \l{Qt for S60 Requirements} + \o \l{Qt for Windows CE Requirements} + \o \l{Qt for Windows Requirements} + \o \l{Qt for X11 Requirements} + \endlist +*/ + +/*! + \page requirements-win.html + \title Qt for Windows Requirements + \ingroup installation + \brief Setting up the Windows environment for Qt. + \previouspage General Qt Requirements + + If you are using a binary version of Qt with Visual Studio 2005, you must + first install the Visual Studio Service Pack 1 available + \l{http://www.microsoft.com/downloads/details.aspx?FamilyId=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en}{here} + to avoid runtime conflicts. + + To build Qt with Phonon on Windows, you require: + + \list + \o Microsoft's DirectX Software Development Kit which can be + downloaded + \l{http://msdn2.microsoft.com/en-us/directx/aa937788.aspx}{here}, and + \o Microsoft's Windows Server 2003 R2 Platform SDK which is available + \l{http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en}{here}. + \endlist + + \sa {Known Issues in %VERSION%} +*/ + +/*! + \page requirements-mac.html + \title Qt for Mac OS X Requirements + \ingroup installation + \brief Setting up the Mac OS X environment for Qt. + \previouspage General Qt Requirements + + \sa {Known Issues in %VERSION%} +*/ + +/*! + \page requirements-x11.html + \title Qt for X11 Requirements + \ingroup installation + \brief Setting up the X11 environment for Qt. + \previouspage General Qt Requirements + + \tableofcontents + + \section1 QtGui Dependencies + + \image x11_dependencies.png Qt for X11 Dependencies + + \raw HTML + <style type="text/css" id="colorstyles"> + #QtGuiColor { background-color: #98fd00; color: black } + #QtCoreColor { background-color: #9c9cff; color: black } + #DefaultColor { background-color: #f6f6dc; color: black } + #FreetypeColor { background-color: #e6e6fa; color: black } + #GLColor { background-color: #ffc0cb; color: black } + #PthreadColor { background-color: #bdb76b; color: black } + #OptionalColor { background-color: #cae1ff; color: black } + #SMColor { background-color: #c2fafa; color: black } + #MiscColor { background-color: #f0f9ff; color: black } + #GlibColor { background-color: #b3b3b3; color: black } + </style> + \endraw + + The QtGui module and the QtCore module, which provides the non-GUI features required + by QtGui, depend on the libraries described in the following table. To build + Qt from its source code, you will also need to install the development + packages for these libraries for your system. + + \table 90% + \header \o Name \o Library \o Notes \o Configuration options \o Minimum working version + \raw HTML + <tr id="OptionalColor"> + <td> XRender </td><td> libXrender </td><td> X Rendering Extension; used for anti-aliasing</td> + <td><tt>-xrender</tt> or auto-detected</td><td>0.9.0</td> + </tr><tr id="OptionalColor"> + <td> Xrandr </td><td> libXrandr </td><td> X Resize and Rotate Extension</td> + <td><tt>-xrandr</tt> or auto-detected</td><td>1.0.2</td> + </tr><tr id="OptionalColor"> + <td> Xcursor </td><td> libXcursor </td><td> X Cursor Extension</td> + <td><tt>-xcursor</tt> or auto-detected</td><td>1.1.4</td> + </tr><tr id="OptionalColor"> + <td> Xfixes </td><td> libXfixes </td><td> X Fixes Extension</td> + <td><tt>-xfixes</tt> or auto-detected</td><td>3.0.0</td> + </tr><tr id="OptionalColor"> + <td> Xinerama </td><td> libXinerama </td><td> Multi-head support</td> + <td><tt>-xinerama</tt> or auto-detected</td><td>1.1.0</td> + + </tr><tr id="OptionalColor"> + <td> Fontconfig </td><td> libfontconfig </td><td> Font customization and configuration</td> + <td><tt>-fontconfig</tt> or auto-detected</td><td>2.1</td> + </tr><tr id="OptionalColor"> + <td> FreeType </td><td> libfreetype </td><td> Font engine</td> + <td></td><td>2.1.3</td> + + </tr><tr id="DefaultColor"> + <td> Xi </td><td> libXi </td><td> X11 Input Extensions</td> + <td><tt>-xinput</tt> or auto-detected</td><td>1.3.0</td> + </tr><tr id="DefaultColor"> + <td> Xt </td><td> libXt </td><td> Xt Intrinsics</td><td></td><td>0.99</td> + </tr><tr id="DefaultColor"> + <td> Xext </td><td> libXext </td><td> X Extensions</td><td></td><td>6.4.3</td> + </tr><tr id="DefaultColor"> + <td> X11 </td><td> libX11 </td><td> X11 Client-Side Library</td><td></td><td>6.2.1</td> + + </tr><tr id="SMColor"> + <td> SM </td><td> libSM </td><td> X Session Management</td> + <td><tt>-sm</tt> or auto-detected</td><td>6.0.4</td> + </tr><tr id="SMColor"> + <td> ICE </td><td> libICE </td><td> Inter-Client Exchange</td> + <td><tt>-sm</tt> or auto-detected</td><td>6.3.5</td> + + </tr><tr id="GlibColor"> + <td> glib </td><td> libglib-2.0 </td><td> Common event loop handling</td> + <td><tt>-glib</tt> or auto-detected</td><td>2.8.3</td> + </tr><tr id="PthreadColor"> + <td> pthread </td><td> libpthread </td><td> Multithreading</td> + <td></td><td>2.3.5</td> + </tr> + \endraw + \endtable + + \note You must compile with XRender support to get alpha transparency + support for pixmaps and images. + + Development packages for these libraries contain header files that are used + when building Qt from its source code. On Debian-based GNU/Linux systems, + for example, we recommend that you install the following development + packages: + + \list + \o libfontconfig1-dev + \o libfreetype6-dev + \o libx11-dev + \o libxcursor-dev + \o libxext-dev + \o libxfixes-dev + \o libxft-dev + \o libxi-dev + \o libxrandr-dev + \o libxrender-dev + \endlist + + Some of these packages depend on others in this list, so installing one + may cause others to be automatically installed. Other distributions may + provide system packages with similar names. + + \section1 OpenGL Dependencies + + The configure script will autodetect if OpenGL headers and libraries are + installed on your system, and if so, it will include the QtOpenGL module + in the Qt library. + + If your OpenGL headers or libraries are placed in a non-standard directory, + you may need to change the \c QMAKE_INCDIR_OPENGL and/or + \c QMAKE_LIBDIR_OPENGL in the config file for your system. + + The QGL documentation assumes that you are familiar with OpenGL + programming. If you're new to the subject a good starting point is + \l{http://www.opengl.org/}. + + \section1 Phonon Dependencies + + As described in the \l{Phonon Overview}, Phonon uses the GStreamer multimedia + framework as the backend for audio and video playback on X11. The minimum required + version of GStreamer is 0.10. + + To build Phonon, you need the GStreamer library, base plugins, and development + files for your system. The package names for GStreamer vary between Linux + distributions; try searching for \c gstreamer or \c libgstreamer in your + distribution's package repository to find suitable packages. + + \sa {Known Issues in %VERSION%} +*/ + +/*! + \page requirements-wince.html + \title Qt for Windows CE Requirements + \ingroup installation + \brief Setting up the Windows CE environment for Qt. + \previouspage General Qt Requirements + + Qt is known to work with Visual Studio 2005 and the following SDKs for + Windows CE development on Windows XP and Windows Vista: + + \list + \o Windows CE 5.0 Standard SDK for ARM, X86, and MIPS + \o Windows CE 6.0 SDKs for ARM generated using the defaults found in + Platform Builder + \o Windows Mobile 5.0 (\e{Pocket PC}, \e{Smartphone} and + \e{Pocket PC with Phone} editions) + \o Windows Mobile 6.0 (\e{Standard}, \e{Classic} and + \e{Professional} editions) + \endlist + + Below is a list of links to download the SDKs: + + \list + \o \l{http://www.microsoft.com/downloads/details.aspx?familyid=fa1a3d66-3f61-4ddc-9510-ae450e2318c3&displaylang=en} + {Windows CE 5 Standard SDK} + \o \l{http://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED&displaylang=en} + {Windows Mobile 5 Pocket PC} + \o \l{http://www.microsoft.com/downloads/details.aspx?familyid=DC6C00CB-738A-4B97-8910-5CD29AB5F8D9&displaylang=en} + {Windows Mobile 5 Smartphone} + \o \l{http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en } + {Windows Mobile 6 Professional/Standard} + \endlist + + \table + \row \bold{Note:} + \o + \list 1 + \o Currently, there is only compile support for Windows CE 5.0 + Standard SDK for SH-4. + \o There is currently no "out of the box" support for the + Windows CE Automotive or Portable Media SDKs from Microsoft. + \endlist + \endtable + + + Device manufacturers may prefer to make their own customized version of + Windows CE using Platform Builder. In order for Qt for Windows CE to + support a custom SDK, a build specification needs to be created. More + information on Windows CE Customization can be found + \l{Windows CE - Working with Custom SDKs}{here}. + + \sa {Known Issues in %VERSION%} +*/ + +/*! + \page requirements-embedded-linux.html + \title Qt for Embedded Linux Requirements + \ingroup installation + \brief Setting up the Embedded Linux environment for Qt. + \previouspage General Qt Requirements + + \sa {Known Issues in %VERSION%} + + \section1 Building Qt for Embedded Linux with uclibc + + If you intend to include the QtWebKit module in your Qt build then you should + use version \bold{uClibc 0.9.29 or greater} as that is the earliest version + with sufficient pthread support. + + \section1 Memory Requirements + + The memory and storage requirements for Qt for Embedded Linux depend on a + an variety of different factors, including the target architecture and the + features enabled in the Qt build. + + The following table shows typical library sizes for the most common Qt + libraries on different architectures, built in release mode with different + feature profiles. + + \table + \header \o{1,2} Architecture \o{1,2} Compiler \o{2,1} QtCore \o{2,1} QtGui \o{2,1} QtNetwork \o{2,1} QtWebKit + \header \o Minimal \o Normal \o Minimal \o Normal \o Minimal \o Normal \o Minimal \o Normal + \row \o linux-x86-g++ \o GCC 4.2.4 \o 1.7M \o 2.7M \o 3.3M \o 9.9M \o 653K \o 1.1M \o N/A \o 17M + \row \o linux-arm-g++ \o GCC 4.1.1 \o 1.9M \o 3.2M \o 4.1M \o 11M \o 507K \o 1.0M \o N/A \o 17M + \row \o linux-mips-g++ (MIPS32) + \o GCC 4.2.4 \o 2.0M \o 3.2M \o 4.5M \o 12M \o 505K \o 1003K \o N/A \o 21M + \endtable + + Library sizes are given in the following units: K = 1024 bytes; M = 1024K. + QtWebKit is excluded from the minimal configuration. + + The \l{Fine-Tuning Features in Qt} document covers the process of configuring + Qt builds to avoid the inclusion of unnecessary features. + + \section1 Additional X11 Libraries for QVFb + + The Virtual Framebuffer (QVFb) application requires the \c libxtst library + in addition to the libraries used to build Qt for X11. This library + enables the use of the Record extension to the X protocol to be used in + applications. +*/ + +/*! + \page requirements-s60.html + \title Qt for S60 Requirements + \ingroup installation + \brief Setting up the S60 environment for Qt. + \previouspage General Qt Requirements + + Qt for S60 requires the following software installed on your development PC: + \list + \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/}{Carbide.c++ v2.0.0 or higher} + \list + \o \bold{Note:} It may be necessary to update the Carbide compiler. + See \l{http://pepper.troll.no/s60prereleases/patches/}{here} for instructions how to check your + compiler version and how to patch it, if needed. + \endlist + \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/S60SDK/}{S60 Platform SDK 3rd Edition FP1 or higher} + \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/}{Open C/C++ v1.6.0 or higher}. + Install this to all S60 SDKs you plan to use Qt with. + \o Building Qt libraries requires \l{http://www.arm.com/products/DevTools/RVCT.html}{RVCT} 2.2 [build 616] or later, + which is not available free of charge. + \endlist + + Running Qt on real device requires the following packages to be installed on your device. + The packages can be found in the S60 SDK where you installed Open C/C++: + \list + \o \c{nokia_plugin\openc\s60opencsis\pips_s60_<version>.sis} + \o \c{nokia_plugin\openc\s60opencsis\openc_ssl_s60_<version>.sis} + \o \c{nokia_plugin\opencpp\s60opencppsis\stdcpp_s60_<version>.sis} + \endlist + + \note Users of \bold{S60 Platform SDK 3rd Edition FP1} also need special updates. The update can be found + \l{http://pepper.troll.no/s60prereleases/patches/}{here}. + + \sa {Known Issues in %VERSION%} +*/ diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc new file mode 100644 index 0000000..41bdcdf --- /dev/null +++ b/doc/src/getting-started/known-issues.qdoc @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page known-issues.html + \title Known Issues in %VERSION% + \ingroup platform-specific + \brief A summary of known issues in Qt %VERSION% at the time of release. + + An up-to-date list of known issues with Qt %VERSION% can be found via the + \l{Task Tracker} on the Qt website which provides additional information + about known issues and tasks related to Qt. + + \section1 General Issues + + When running Qt applications on Windows or with \c{-graphicssystem raster}, + any process that triggers a QWidget::update() from within a destructor + might result in a crash. + + + \section1 Issues with Third Party Software + + \section2 X11 Hardware Support + + \list + \o There is a bug in the 169.xx NVIDIA drivers on certain GeForce 8 series + cards that is triggered by the OpenGL paint engine when using QPainter + on a QGLWidget to draw paths and polygons. Some other painting + operations that end up in the path fallback are affected as well. The + bug causes the whole X server to repeatedly hang for several seconds at + a time. + \o There is an issue with NVIDIA's 9xxx driver series on X11 that causes a + crash in cases where there are several \l{QGLContext}s and the extended + composition modes are used (the composition modes between and including + QPainter::CompositionMode_Multiply and + QPainter::CompositionMode_Exclusion). This affects the composition mode + demo in Qt 4.5, for example. The crash does not occur in newer versions + of the drivers. + \endlist + + \section2 Windows Hardware Support + + \list + \o When using version 6.14.11.6921 of the NVIDIA drivers for the GeForce + 6600 GT under Windows XP, Qt applications which use drag and drop will + display reduced size drag and drop icons when run alongside + applications that use OpenGL. This problem can be worked around by + reducing the level of graphics acceleration provided by the driver, or + by disabling hardware acceleration completely. + \endlist + + \section2 Windows Software Issues + + \list + + \o When building Qt 4.5.0 with Windows 7, the build fails with an error + message regarding failing to embed manifest. This a known issue with + Windows 7, explained in the Windows 7 SDK Beta + \l{http://download.microsoft.com/download/8/8/0/8808A472-6450-4723-9C87-977069714B27/ReleaseNotes.Htm} + {release notes}. A workaround for this issue is to patch the + \bold{embed_manifest_exe.prf} file with the following: + + \code + diff --git a/mkspecs/features/win32/embed_manifest_exe.prf b/mkspecs/features/win32/embed_manifest_exe.prf + index e1747f1..05f116e 100644 + --- a/mkspecs/features/win32/embed_manifest_exe.prf + +++ b/mkspecs/features/win32/embed_manifest_exe.prf + @@ -8,4 +8,9 @@ if(win32-msvc2005|win32-msvc2008):!equals(TEMPLATE_PREFIX, "vc"):equals(TEMPLATE + QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(OBJECTS_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.ma + nifest\" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(\n\t)) + QMAKE_POST_LINK += $$QMAKE_PREV_POST_LINK + QMAKE_CLEAN += \"$$replace(OBJECTS_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" + + isEmpty(RC_FILE) { + + system("echo.>$$replace(OUT_PWD,/,\\)\\$$replace(OBJECTS_DIR,/,\\)\\Windows7WorkAround.rc") + + RC_FILE = $$replace(OUT_PWD,/,\\)\\$$replace(OBJECTS_DIR,/,\\)\\Windows7WorkAround.rc + + } + + + } + \endcode + + \o Under certain circumstances Visual Studio Integration v1.4.0 will not + be able to install the integration for Visual Studio 2005 on Windows + Vista. An error message states that .NET Framework v2.0 Service Pack 1 + is not installed. This is due to a problem with the built-in + installation of this on Windows Vista. This issue can be fixed by + installing .NET Framework version 3.5. + + \o With NVIDIA GeForce 7950 GT (driver version 6.14.11.7824), a fullscreen + QGLWidget flickers when child widgets are shown/hidden. The workaround + for this is to use \l{QWidget::}{setGeometry()} with a width/height 1 + pixel bigger than your geometry and call \l{QWidget::}{show()}. + + \o A bug in the Firebird database can cause an application to crash when + \c{fbembed.dll} is unloaded. The bug is fixed in version 2.5. + + \endlist + + + \section2 Mac OS X Software Support + + \list + \o If a sheet is opened for a given window, clicking the title bar of that + window will cause it to flash. This behavior has been reported to Apple + (bug number 5827676). + \endlist + + + \section2 Installing source packages on Unix systems + + \list + \o If you download a Zip source package, you will need to convert + Windows-style line endings (CR/LF) to Unix-style line-endings (LF) when + you uncompress the package. To do this, give the "-a" option when you + run the "unzip' command. + + If you fail to supply the "-a" option when unzipping the package, you + will see the following error message when you attempt to execute the + configure command: + "bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory" + \endlist + + + \section2 Running evaluation packages on Windows XP + + \list + \o If running the qt-win-eval-%VERSION%-vs2008.exe package on a Windows XP + system, you may encounter the following error message: + "The application failed to start because the application configuration + is incorrect. Reinstalling the application may fix this problem.". + + This error occurs because the version of the CRT component on the + system is incorrect. Visual Studio 2008 requires CRT90 while Windows + XP comes with CRT80. To solve this problem, please install the 2008 CRT + redistributable package from Microsoft. + \endlist +*/ diff --git a/doc/src/getting-started/tutorials.qdoc b/doc/src/getting-started/tutorials.qdoc new file mode 100644 index 0000000..525b6e4 --- /dev/null +++ b/doc/src/getting-started/tutorials.qdoc @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page tutorials.html + \title Tutorials + + \contentspage How to Learn Qt + \nextpage Qt Examples + + \brief Tutorials, guides and overviews to help you learn Qt. + + \nextpage Qt Examples + + A collection of tutorials and "walkthrough" guides are provided with Qt to + help new users get started with Qt development. These documents cover a + range of topics, from basic use of widgets to step-by-step tutorials that + show how an application is put together. + + \table + \row + \o{2,1} \l{Widgets Tutorial}{\bold Widgets} + \o{2,1} \l{Address Book Tutorial}{\bold {Address Book}} + \row + \o \image widget-examples.png Widgets + \o + A beginner's guide to getting started with widgets and layouts to create + GUI applications. + + \o \image addressbook-tutorial.png AddressBook + \o + A seven part guide to creating a fully-functioning address book + application. This tutorial is also available with + \l{Tutoriel "Carnet d'adresses"}{French explanation}. + + \row + \o{2,1} \l{A Quick Start to Qt Designer}{\bold{Qt Designer}} + \o{2,1} \l{Qt Linguist Manual: Programmers#Tutorials}{\bold {Qt Linguist}} + \row + \o \image designer-examples.png QtDesigner + \o + A quick guide through \QD showing the basic steps to create a + form with this interactive tool. + + \o \image linguist-examples.png QtLinguist + \o + A guided tour through the translations process, explaining the + tools provided for developers, translators and release managers. + + \row + \o{2,1} \l{QTestLib Tutorial}{\bold QTestLib} + \o{2,1} \l{qmake Tutorial}{\bold qmake} + \row + \o{2,1} + This tutorial gives a short introduction to how to use some of the + features of Qt's unit-testing framework, QTestLib. It is divided into + four chapters. + + \o{2,1} + This tutorial teaches you how to use \c qmake. We recommend that + you read the \l{qmake Manual}{qmake user guide} after completing + this tutorial. + + \endtable +*/ |