Doc: move info about Qt Designer and Qt widgets to a separate folder

Change-Id: I92efa66d0dc1f8ed35e16f7f8b5293806355a400
Reviewed-on: http://codereview.qt-project.org/5614
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
This commit is contained in:
Leena Miettinen
2011-09-27 11:59:26 +02:00
parent c9f0988eee
commit 910eb9b47f
5 changed files with 902 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
\section1 Qt Designer Integration Questions
\bold {Why are custom widgets not loaded in Design mode even though it
works in standalone Qt Designer?}
Qt Designer fetches plugins from standard locations and loads the plugins
that match its build key. The locations are different for standalone and
integrated Qt Designer.
For more information, see \l{Adding Qt Designer Plugins}.

View File

@@ -0,0 +1,320 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (info@qt.nokia.com)
**
**
** GNU Free Documentation License
**
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at info@qt.nokia.com.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-qml-components-example.html
\page creator-writing-program.html
\nextpage creator-mobile-example.html
\title Creating a Qt Widget Based Application
This tutorial describes how to use \QC to create a small Qt application,
Text Finder. It is a simplified version of the QtUiTools
\l{http://doc.qt.nokia.com/4.7/uitools-textfinder.html}{Text Finder}
example. The application user interface is constructed from Qt widgets by
using \QD. The application logic is written in C++ by using the code editor.
\image qtcreator-textfinder-screenshot.png
\section1 Creating the Text Finder Project
\note Create the project with two instances of \QC open and the \gui{Help}
mode active in one of them so that you can follow these instructions while
you work.
\list 1
\o Select \gui{File > New File or Project > Qt Widget Project > Qt Gui
Application > Choose}.
\image qtcreator-new-qt-gui-application.png "New File or Project dialog"
The \gui{Introduction and Project Location} dialog opens.
\image qtcreator-intro-and-location-qt-gui.png "Introduction and Project Location dialog"
\o In the \gui{Name} field, type \bold {TextFinder}.
\o In the \gui {Create in} field, enter the path for the project files.
For example, \c {C:\Qt\examples}, and then click \gui{Next}.
The \gui {Target Setup} dialog opens.
\image qtcreator-new-project-qt-versions-qt-gui.png "Target Setup dialog"
\o Select the Qt versions to use as build targets for your project,
and click \gui{Next}.
\note If you have only one Qt version installed, this dialog is
skipped.
The \gui{Class Information} dialog opens.
\image qtcreator-class-info-qt-gui.png "Class Information dialog"
\o In the \gui{Class name} field, type \bold {TextFinder} as the class
name.
\o In the \gui{Base class} list, select \bold {QWidget} as the base
class type.
\note The \gui{Header file}, \gui{Source file} and \gui{Form file}
fields are automatically updated to match the name of the class.
\o Click \gui{Next}.
The \gui{Project Management} dialog opens.
\image qtcreator-new-project-summary-qt-gui.png "Project Management dialog"
\o Review the project settings, and click \gui{Finish} to create the
project.
\endlist
The TextFinder project now contains the following files:
\list
\o textfinder.h
\o textfinder.cpp
\o main.cpp
\o textfinder.ui
\o textfinder.pro
\endlist
\image qtcreator-textfinder-contents.png "TextFinder project contents"
The .h and .cpp files come with the necessary boiler plate code.
The .pro file is complete.
\section1 Filling in the Missing Pieces
Begin by designing the user interface and then move on to filling
in the missing code. Finally, add the find functionality.
\section2 Designing the User Interface
\image qtcreator-textfinder-ui.png "Text Finder UI"
\list 1
\o In the \gui{Editor} mode, double-click the textfinder.ui file in the
\gui{Projects} view to launch the integrated \QD.
\o Drag and drop the following widgets to the form:
\list
\o \gui{Label} (QLabel)
\o \gui{Line Edit} (QLineEdit)
\o \gui{Push Button} (QPushButton)
\endlist
\image qtcreator-textfinder-ui-widgets.png "Adding widgets to Text Finder UI"
\note To easily locate the widgets, use the search box at the top of the
\gui Sidebar. For example, to find the \gui Label widget, start typing
the word \bold label.
\image qtcreator-texfinder-filter.png "Filter field"
\o Double-click the \gui{Label} widget and enter the text
\bold{Keyword}.
\o Double-click the \gui{Push Button} widget and enter the text
\bold{Find}.
\o In the \gui Properties pane, change the \gui objectName to
\bold findButton.
\image qtcreator-textfinder-objectname.png "Changing object names"
\o Press \key {Ctrl+A} to select the widgets and click
\gui{Lay out Horizontally} (or press \gui{Ctrl+H}) to apply a
horizontal layout (QHBoxLayout).
\image qtcreator-texfinder-ui-horizontal-layout.png "Applying horizontal layout"
\o Drag and drop a \gui{Text Edit} widget (QTextEdit) to the form.
\o Select the screen area and click \gui{Lay out Vertically} (or press
\gui{Ctrl+L}) to apply a vertical layout (QVBoxLayout).
\image qtcreator-textfinder-ui.png "Text Finder UI"
Applying the horizontal and vertical layouts ensures that the
application UI scales to different screen sizes.
\o To call a find function when users press the \gui Find button, you
use the Qt signals and slots mechanism. A signal is emitted when a
particular event occurs and a slot is a function that is called in
response to a particular signal. Qt widgets have predefined signals
and slots that you can use directly from \QD. To add a slot for the
find function:
\list
\o Right-click the \gui Find button to open a context-menu.
\o Select \gui {Go to Slot > clicked()}, and then select
\gui OK.
A private slot, \c{on_findButton_clicked()}, is added to the
header file, textfinder.h and a private function,
\c{TextFinder::on_findButton_clicked()}, is added to the
source file, textfinder.cpp.
\endlist
\o Press \gui{Ctrl+S} to save your changes.
\endlist
For more information about designing forms with \QD, see the
\l{http://doc.qt.nokia.com/4.7/designer-manual.html}{Qt Designer Manual}.
\section2 Completing the Header File
The textfinder.h file already has the necessary #includes, a constructor,
a destructor, and the \c{Ui} object. You need to add a private function,
\c{loadTextFile()}, to read and display the contents of the input text file
in the QTextEdit.
\list 1
\o In the \gui{Projects} pane in the \gui {Edit view}, double-click the
\c{textfinder.h} file to open it for editing.
\o Add a private function to the \c{private} section, after the
\c{Ui::TextFinder} pointer, as illustrated by the following code
snippet:
\snippet examples/textfinder/textfinder.h 0
\endlist
\section2 Completing the Source File
Now that the header file is complete, move on to the source file,
textfinder.cpp.
\list 1
\o In the \gui{Projects} pane in the \gui Edit view, double-click the
textfinder.cpp file to open it for editing.
\o Add code to load a text file using QFile, read it with QTextStream,
and then display it on \c{textEdit} with
\l{http://doc.qt.nokia.com/4.7/qtextedit.html#plainText-prop}
{setPlainText()}.
This is illustrated by the following code snippet:
\snippet examples/textfinder/textfinder.cpp 0
\o To use QFile and QTextStream, add the following #includes to
textfinder.cpp:
\snippet examples/textfinder/textfinder.cpp 1
\o For the \c{on_findButton_clicked()} slot, add code to extract the
search string and use the
\l{http://doc.qt.nokia.com/4.7/qtextedit.html#find}{find()} function
to look for the search string within the text file. This is
illustrated by the following code snippet:
\snippet examples/textfinder/textfinder.cpp 2
\o Once both of these functions are complete, add a line to call
\c{loadTextFile()} in the constructor, as illustrated by the
following code snippet:
\snippet examples/textfinder/textfinder.cpp 3
\endlist
The \c{on_findButton_clicked()} slot is called automatically in
the uic generated ui_textfinder.h file by this line of code:
\code
QMetaObject::connectSlotsByName(TextFinder);
\endcode
\section2 Creating a Resource File
You need a resource file (.qrc) within which you embed the input
text file. The input file can be any .txt file with a paragraph of text.
Create a text file called input.txt and store it in the textfinder
folder.
To add a resource file:
\list 1
\o Select \gui{File > New File or Project > Qt > Qt Resource File >
Choose}.
\image qtcreator-add-resource-wizard.png "New File or Project dialog"
The \gui {Choose the Location} dialog opens.
\image qtcreator-add-resource-wizard2.png "Choose the Location dialog"
\o In the \gui{Name} field, enter \bold{textfinder}.
\o In the \gui{Path} field, enter \c{C:\Qt\examples\TextFinder},
and click \gui{Next}.
The \gui{Project Management} dialog opens.
\image qtcreator-add-resource-wizard3.png "Project Management dialog"
\o In the \gui{Add to project} field, select \bold{TextFinder.pro}
and click \gui{Finish} to open the file in the code editor.
\o Select \gui{Add > Add Prefix}.
\o In the \gui{Prefix} field, replace the default prefix with a slash
(/).
\o Select \gui{Add > Add Files}, to locate and add input.txt.
\image qtcreator-add-resource.png "Editing resource files"
\endlist
\section1 Compiling and Running Your Program
Now that you have all the necessary files, click the
\inlineimage qtcreator-run.png
button to compile and run your program.
*/

View File

@@ -0,0 +1,291 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (info@qt.nokia.com)
**
**
** GNU Free Documentation License
**
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at info@qt.nokia.com.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-writing-program.html
\page creator-mobile-example.html
\nextpage creator-project-managing.html
\title Creating a Qt Widget Based Mobile Application
\note To complete this tutorial, you must install \QSDK.
The installation program installs and configures the necessary tool chains
for mobile application development.
This tutorial describes how to use \QC to create a small Qt
application, Battery Indicator, that uses the System Information
Mobility API to fetch battery information from the device.
The user interface for the application is designed using Qt widgets. This
enforces a platform look and feel for Symbian devices and Maemo 5 devices.
However, to achieve a platform look and feel for MeeGo Harmattan devices,
\l{Creating Qt Quick Applications}{create a Qt Quick Application} and use
the Qt Quick components for MeeGo.
\image qtcreator-batteryindicator-screenshot.png
\section1 Creating the Battery Indicator Project
\note Create the project with the \gui{Help} mode active so that you can
follow these instructions while you work.
\list 1
\o Select \gui{File > New File or Project > Qt Widget Project > Mobile
Qt Application > Choose}.
\image qtcreator-new-mobile-project.png "New File or Project dialog"
The \gui{Introduction and Project Location} dialog opens.
\image qtcreator-mobile-intro-and-location.png "Introduction and Project Location dialog"
\o In the \gui{Name} field, type \bold {BatteryIndicator}.
\o In the \gui {Create in} field, enter the path for the project files.
For example, \c {C:\Qt\examples}, and then click \gui{Next}.
The \gui{Target Setup} dialog opens.
\image qtcreator-mobile-project-qt-versions.png "Target Setup dialog"
\o Select \gui {Symbian Device}, \gui {Maemo5}, \gui Harmattan, and
\gui {Qt Simulator} targets, and click \gui{Next}.
\note Targets are listed if you installed the appropriate
development environment, for example, as part of the \QSDK. You can
add targets later in the \gui Projects mode.
The \gui {Mobile Options} dialog opens.
\image qtcreator-mobile-project-app-options.png "Mobile Options dialog"
\o In the \gui {Orientation behavior} field, determine how the
application behaves when the orientation of the device display
rotates between portrait and landscape, and then click \gui{Next}.
\note This dialog opens only if you select \gui Maemo5 or
\gui {Symbian Device} target in the \gui {Target Setup} dialog. On
Harmattan, the Qt Quick Components for MeeGo provide native-looking
rotation.
The \gui {Symbian Specific} dialog opens.
\image qtcreator-mobile-project-symbian-options.png "Symbian Specific dialog"
\note \QC contains a default program icon and generates an
\l{Application UID}, for testing the application on a device. You
only need to change the icon and UID if you deliver the application
for public use.
\o Click \gui Next.
The \gui {Maemo Specific} dialog opens.
\image qtcreator-mobile-project-maemo-options.png "Maemo Specific dialog"
\o In the \gui {Application icon} field, select the application
icon to use on Maemo 5 or Harmattan targets, or click \gui Next to
use the default icon.
The \gui{Project Management} dialog opens.
\image qtcreator-mobile-project-summary.png "Project Management dialog"
\o Review the project settings, and click \gui{Finish} to create the
project.
\endlist
The BatteryIndicator project now contains the following files:
\list
\o BatteryIndicator.pro
\o main.cpp
\o BatteryIndicator.svg
\o BatteryIndicator.png
\o BatteryIndicator.desktop
\o deployment.pri
\o mainwindow.cpp
\o mainwindow.ui
\o mainwindow.h
\o templates for Debian deployment files
\endlist
\image qtcreator-mobile-project-contents.png "Project contents"
The files come with the necessary boiler plate code that you must
modify, as described in the following sections.
\section1 Declaring the Qt Mobility API
To use the Qt Mobility APIs or develop applications for Symbian
devices, you must modify the .pro file to declare the Qt Mobility APIs
that you use.
This example uses the System Info API, so you must declare it, as
illustrated by the following code snippet:
\code
CONFIG += mobility
MOBILITY = systeminfo
\endcode
Each Mobility API has its corresponding value that you have to add
as a value of MOBILITY to use the API. For a list of the APIs and the
corresponding values that you can assign to MOBILITY, see the
\l {http://doc.qt.nokia.com/qtmobility/quickstart.html}{Quickstart Example}.
\section1 Designing the User Interface
\list 1
\o In the \gui{Editor} mode, double-click the mainwindow.ui
file in the \gui{Projects} view to launch the integrated \QD.
\o Drag and drop a \gui{Progress Bar}
(\l{http://doc.qt.nokia.com/4.7/qprogressbar.html}{QProgressBar})
widget to the form.
\image qtcreator-mobile-project-widgets.png "Adding widgets to the UI"
\o In the \gui Properties pane, change the \gui objectName to
\bold batteryLevelBar.
\o Right-click the \gui MainWindow object and select
\gui {Lay Out > Lay Out Horizontally} to ensure that the battery
indicator widget size is adjusted correctly on Maemo devices.
\endlist
\section1 Completing the Header File
The mainwindow.h file contains some of the necessary #includes, a
constructor, a destructor, and the \c{Ui} object. You must include
the System Info header file, add a shortcut to the mobility name
space, and add a private function to update the battery level value in
the indicator when the battery power level changes.
\list 1
\o In the \gui{Projects} view, double-click the \c{mainwindow.h} file
to open it for editing.
\o Include the System Device Info header file, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.h 1
\o Add a shortcut to the mobility name space, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.h 2
\o Declare a private function in the \c{private} section, after the
\c{Ui::MainWindow} function, as illustrated by the following code
snippet:
\snippet examples/batteryindicator/mainwindow.h 3
\endlist
\section1 Completing the Source File
Now that the header file is complete, move on to the source file,
mainwindow.cpp.
\list 1
\o In the \gui{Projects} view, double-click the mainwindow.cpp file
to open it for editing.
\o Create a QSystemDeviceInfo object and set its value. Then connect
the signal that indicates that battery level changed to the
\c setValue slot of the progress bar. This is illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.cpp 1
\o Use the constructor to set initial values and make sure that the
created object is in a defined state, as illustrated by the
following code snippet:
\snippet examples/batteryindicator/mainwindow.cpp 2
\endlist
\section1 Compiling and Running Your Program
Now that you have all the necessary code, select \gui {Qt Simulator}
as the target and click the
\inlineimage qtcreator-run.png
button to build your program and run it in the Qt Simulator.
In Qt Simulator, run the runOutOfBattery.qs example script
to see the value change in the Battery Indicator application.
Select \gui {Scripting > examples > runOutOfBattery.qs > Run}.
\image qtcreator-mobile-simulated.png "Mobile example in Qt Simulator"
\section1 Testing on a Symbian Device
You also need to test the application on real devices. Before you can
start testing on Symbian devices, you must connect them to the development
PC by using a USB cable and install an on-device debugging agent on them.
\list 1
\o Install the necessary software on the device. For more information,
see \l{Connecting Symbian Devices}.
\o Start the CODA debugging agent on the device.
\o Click the \gui {Target Selector} and select \gui {Symbian Device}.
\o Click \gui Run to build the application for the Symbian device.
\endlist
\section1 Testing on the Maemo or MeeGo Harmattan Emulator
The Maemo 5 (Fremantle) and MeeGo Harmattan emulator are installed as part
of the \QSDK. After they are installed, you can start them from \QC.
The Maemo emulator emulates the Nokia N900 device environment. You can test
applications in conditions practically identical to running the application
on a Nokia N900 device with the software update release 1.3 (V20.2010.36-2).
The MeeGo Harmattan emulator emulates the Nokia N9 device environment.
For more information, see \l{Using Maemo or MeeGo Harmattan Emulator}.
*/

View File

@@ -0,0 +1,132 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (info@qt.nokia.com)
**
**
** GNU Free Documentation License
**
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at info@qt.nokia.com.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-qml-modules-with-plugins.html
\page creator-using-qt-designer.html
\nextpage creator-usability.html
\title Developing Widget Based Applications
Widgets and forms created with \QD are integrated seamlessly with programmed
code by using the Qt signals and slots mechanism that allows you to easily
assign behavior to graphical elements. All properties set in \QD can be
changed dynamically within the code. Furthermore, features such as widget
promotion and custom plugins allow you to use your own widgets with \QD. For
more information, see \l{Adding Qt Designer Plugins}.
\QC automatically opens all .ui files in the integrated \QD, in \gui Design
mode.
\image qtcreator-formedit.png
For more information about \QD, see the
\l{http://doc.qt.nokia.com/4.7/designer-manual.html}{Qt Designer Manual}.
Generally, the integrated \QD contains the same functions as the standalone
\QD. The following sections describe the differences.
\section1 Code Editor Integration
To switch between forms (\gui Design mode) and code (\gui Edit mode),
press \key Shift+F4.
You can use \QC to create stub implementations of slot functions. In the
\gui Design mode, right-click a widget to open a context menu, and then
select \gui {Go to Slot}. Select a signal in the list to go to an existing
slot function or to create a new slot function.
\section1 Managing Image Resources
In standalone \QD, image resources are created using the built-in
\gui {Resource Editor}. In \QC, .ui files are usually part of a project,
which may contain several resource files (.qrc). They are created and
maintained by using the \QC Resource Editor. The \QD \gui {Resource Editor}
is de-activated and the image resources are displayed in the \QD
\gui {Resource Browser}.
\section1 Specifying Settings for Qt Designer
To change the layout of \QD user interface elements:
\list 1
\o Select \gui Tools > \gui{Form Editor} > \gui Views > \gui Locked.
When this option is not checked, you can change the layout.
\o Click the header of an element and drag the element to a new
position.
\endlist
To specify settings for \QD:
\list
\o Select \gui Tools > \gui Options > \gui Designer.
\o Specify settins for generating classes and code in \gui {Class
Generation}.
\o Specify embedded device profiles, that determine style, font, and
screen resolution, for example, in \gui{Embedded Design}.
\o Specify settings for the grid and previewing forms in \gui Forms.
\o Specify an additional folder for saving templates in \gui{Template
Paths}.
\endlist
To preview the settings, select \gui Tools > \gui{Form Editor} >
\gui Preview, or press \key Alt+Shift+R.
\section1 Previewing Forms Using Device Skins
A \e {device skin} is a set of configuration files that describe a mobile
device. It includes a border image that surrounds the form and depicts a
mobile device with its buttons.
To preview your form using device skins:
\list 1
\o Select \gui Tools > \gui Options > \gui Designer.
\o Select the \gui{Print/Preview Configuration} check box.
\o In the \gui {Device skin} field, select a device skin.
\o When the form is open in \gui Design mode, press \key Alt+Shift+R.
\o To end the preview, right-click the skin and select \gui Close in
the context menu.
\endlist
*/

View File

@@ -0,0 +1,149 @@
/****************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (info@qt.nokia.com)
**
**
** GNU Free Documentation License
**
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at info@qt.nokia.com.
**
****************************************************************************/
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\contentspage index.html
\previouspage creator-version-control.html
\page adding-plugins.html
\nextpage creator-editor-external.html
\title Adding Qt Designer Plugins
You can use Qt APIs to create plugins that extend Qt applications.
This allows you to add your own widgets to \QD.
The most flexible way to include a plugin with an application is to compile
it into a dynamic library that is shipped separately, and detected and
loaded at runtime.
The applications can detect plugins that are stored in the standard plugin
subdirectories. For more information on how to create and locate plugins
and to change the default plugin path, see \l{How to Create Qt Plugins}.
For more information about how to create plugins for \QD, see
\l{http://doc.qt.nokia.com/4.7/designer-using-custom-widgets.html}
{Creating and Using Components for Qt Designer}.
\section1 Locating Qt Designer Plugins
\QD fetches plugins from the standard locations and loads the plugins
that match its build key. \QD is delivered both as a standalone application
and as part of the SDK, where it is integrated into \QC. The correct folder
to place the plugins depends on which one you use.
The integrated \QD fetches plugins from the \c {%SDK%\bin\designer} folder
on Windows and Linux. For information about how to configure plugins on
Mac OS, see \l{Configuring Qt Designer Plugins on Mac OS}.
To check which plugins
were loaded successfully and which failed, choose \gui{Tools > Form Editor >
About Qt Designer Plugins}.
The standalone \QD is part of the Qt library used for building projects,
located under \c {%SDK%\qt}. Therefore, it fetches plugins from the
following folder: \c {%SDK%\qt\plugins\designer}. To check which plugins
were loaded successfully and which failed, choose \gui{Help >
About Plugins}.
\section2 Configuring Qt Designer Plugins on Mac OS
On the Mac, a GUI application must be built and run from a bundle. A bundle
is a directory structure that appears as a single entity when viewed in the
Finder. A bundle for an application typcially contains the executable and
all the resources it needs.
\QC uses its own set of Qt Libraries located in the bundle, and therefore,
you need to configure the \QD plugins that you want to use with \QC.
Fore more information about how to deploy applications on Mac OS, see
\l{http://doc.qt.nokia.com/4.7/deployment-mac.html}
{Deploying an Application on Mac OS X}.
The following example illustrates how to configure version 5.2.1 of the
\l{http://qwt.sourceforge.net/}{Qwt - Qt Widgets for Technical Applications}
library for use with \QC:
\list 1
\o To check the paths used in the Qwt library, enter the following
\c otool command:
\snippet examples/doc_src_plugins.qdoc 0
The output for Qwt 5.2.1 indicates that the plugin uses Qt core
libraries (QtDesigner, QtScript, QtXml, QtGui and QtCore) and
libqwt.5.dylib:
\snippet examples/doc_src_plugins.qdoc 1
\o You must copy the \QD plugin and the Qwt library files to the
following locations:
\list
\o \c {libqwt_designer_plugin.dylib} to
\c {QtCreator.app/Contents/MacOS/designer}
\o \c {libqwt.*.dylib} to \c {QtCreator.app/Contents/Frameworks}
\endlist
Enter the following commands:
\snippet examples/doc_src_plugins.qdoc 4
\o Enter the following \c otool command to check the libraries that are
used by the Qwt library:
\snippet examples/doc_src_plugins.qdoc 2
The command returns the following output:
\snippet examples/doc_src_plugins.qdoc 3
\o Enter the following \c install_name_tool command to fix the
references of the libraries:
\snippet examples/doc_src_plugins.qdoc 5
\endlist
\section1 Matching Build Keys
The \QC that is included in pre-built SDK packages on Windows is built with
the Microsoft Visual Studio compiler, whereas the version of Qt shipped for
building applications is configured and built to use the MinGW/g++ compiler.
Plugins built by using this version of Qt cannot be loaded by \QC because
the build-keys do not match. The plugins can only be used in the standalone
version of \QD. Choose \gui{Help > About \QC} to check the Qt version \QC
was built with.
To use \QD plugins that were built for the shipped Qt version, make sure
that \QC is built with the same compiler by either recompiling \QC using
MinGW or recompiling Qt with Microsoft Visual Studio, depending on which
configuration you want to use for your applications.
*/