forked from qt-creator/qt-creator
- It's QML, not Qml. But this is only the file format. - The umbrella term is Quick (or Qt Quick, to be sorted out)
4430 lines
155 KiB
Plaintext
4430 lines
155 KiB
Plaintext
// **********************************************************************
|
|
// 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}{Qt Creator}
|
|
\page index.html
|
|
\nextpage creator-overview.html
|
|
|
|
\title Qt Creator Manual
|
|
|
|
\section1 Version 1.3.82
|
|
|
|
Qt Creator provides integrated tools for both application designers
|
|
and developers to create applications for desktop and mobile device
|
|
platforms.
|
|
|
|
For application designers, Qt Creator provides an integrated \QMLD
|
|
tool that you can use to design and develop application UIs for mobile
|
|
devices.
|
|
|
|
For application developers,
|
|
Qt Creator provides a cross-platform, complete integrated development
|
|
environment (IDE) that is available for Linux,
|
|
Mac OS X and Windows operating systems. For more information, see
|
|
\l{Operating Systems and Supported Platforms}.
|
|
|
|
\note Please report bugs and suggestions to the
|
|
\l{http://bugreports.qt.nokia.com}{Qt Bug Tracker}.
|
|
You can also join the Qt Creator mailing list. To subscribe,
|
|
send a message with the word \e subscribe to
|
|
\l{mailto:qt-creator-request@trolltech.com}
|
|
{qt-creator-request@trolltech.com}. For more information about Qt mailing
|
|
lists, visit \l{http://lists.trolltech.com}{http://lists.trolltech.com}.
|
|
|
|
\raw HTML
|
|
<img border="0" style="float:right;" src="images/qtcreator-screenshots.png" />
|
|
\endraw
|
|
|
|
\list
|
|
\o \l{Introducing Qt Creator}
|
|
\o \l{Operating Systems and Supported Platforms}
|
|
\o \l{Quick Tour}
|
|
\o \l{Getting Started}
|
|
\list
|
|
\o \l{Writing a Simple Program}
|
|
\o \l{Creating an Animated Application}
|
|
\endlist
|
|
\o \l{Using the Editor}
|
|
\list
|
|
\o \l{Finding and Replacing}
|
|
\o \l{Refactoring}
|
|
\o \l{Searching With the Locator}
|
|
\endlist
|
|
\o \l{Managing Projects}
|
|
\list
|
|
\o \l{Creating a Project}
|
|
\o \l{Setting Up a qmake Project}
|
|
\o \l{Setting Up a CMake Project}
|
|
\o \l{Setting Up a Generic Project}
|
|
\o \l{Managing Sessions}
|
|
\endlist
|
|
\o \l{Developing Mobile Applications}
|
|
\list
|
|
\o \l{Implementing Application UI}
|
|
\o \l{Developing Maemo Applications}
|
|
\o \l{Developing Symbian Applications}
|
|
\endlist
|
|
\o \l{Debugging}
|
|
\o \l{Using Version Control Systems}
|
|
\o \l{Adding Qt Designer Plugins}
|
|
\o \l{Tips and Tricks}
|
|
\o \l{Keyboard Shortcuts}
|
|
\o \l{Known Issues}
|
|
\o \l{Glossary}
|
|
\o \l{Acknowledgements}
|
|
\endlist
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage index.html
|
|
\page creator-overview.html
|
|
\nextpage creator-os-supported-platforms.html
|
|
|
|
\title Introducing Qt Creator
|
|
|
|
Qt Creator provides you with tools to design and develop animated applications for
|
|
mobile devices and to develop complex applications for multiple desktop
|
|
platforms.
|
|
|
|
\section1 Developing for Mobile Devices
|
|
|
|
\QMLD allows you to easily develop animations by using a declarative programming
|
|
language called QML. You use a visual editor to create widgets and define changes
|
|
in their state. \QMLD generates the necessary code for you.
|
|
You can edit the code in the code editor to add transitions and interaction. You
|
|
can write JavaScript to implement the application logic.
|
|
|
|
\section1 Developing for Desktop Platforms
|
|
|
|
As an IDE, Qt Creator differs from a text editor in that it knows how to build and run
|
|
applications. It understands the code as code, not just as plain text. This allows
|
|
it to:
|
|
\list
|
|
\o Enable you to write well formatted code
|
|
\o Anticipate what you are going to write and complete the code
|
|
\o Display inline error and warning messages
|
|
\o Enable you to semantically navigate to classes, functions, and symbols
|
|
\o Provide you with context-sensitive help on classes, functions, and symbols
|
|
\o Rename symbols in an intelligent way, so that other symbols with the same name
|
|
that belong to other scopes are not renamed
|
|
\o Show you the locations in code where a function is declared or called
|
|
\endlist
|
|
|
|
\section1 Why Do You Need Projects?
|
|
|
|
To be able to build and run applications, Qt Creator needs the same
|
|
information as a compiler would need. This information is specified in the
|
|
project build and run settings.
|
|
|
|
Creating a project allows you to:
|
|
\list
|
|
\o Group files together
|
|
\o Add custom build steps
|
|
\o Include forms and resource files
|
|
\o Specify settings for running applications
|
|
\endlist
|
|
|
|
You can either create a project from scratch or import an existing
|
|
project. Qt Creator generates all the necessary files, depending on the type of
|
|
project you create. For example, if you choose to create a graphical user
|
|
interface (GUI) application, Qt Creator generates an empty .ui file
|
|
that you can modify with the integrated \QD.
|
|
|
|
If you choose to create a QML application, Qt Creator generates a .qml file
|
|
that you can modify with the \QMLD visual editor and the code editor.
|
|
*/
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-overview.html
|
|
\page creator-os-supported-platforms.html
|
|
\nextpage creator-quick-tour.html
|
|
|
|
\title Operating Systems and Supported Platforms
|
|
|
|
\section1 Operating Systems
|
|
|
|
Qt Creator is available in binary packages for the following operating
|
|
systems:
|
|
\list
|
|
\o Windows XP Service Pack 2
|
|
\o Windows Vista
|
|
\o (K)Ubuntu Linux 7.04 32-bit and 64-bit with the following:
|
|
\list
|
|
\o g++
|
|
\o make
|
|
\o libglib2.0-dev
|
|
\o libSM-dev
|
|
\o libxrender-dev
|
|
\o libfontconfig1-dev
|
|
\o libxext-dev
|
|
\o libfreetype6-dev
|
|
\o libx11-dev
|
|
\o libxcursor-dev
|
|
\o libxfixes-dev
|
|
\o libxft-dev
|
|
\o libxi-dev
|
|
\o libxrandr-dev
|
|
\o If you are using QtOpenGL, libgl-dev and libglu-dev
|
|
\endlist
|
|
\o Mac OS 10.5 or later with the following:
|
|
\list
|
|
\o Xcode tools for your Mac OS X version available from your Mac
|
|
OS X installation DVDs or at \l http://developer.apple.com.
|
|
\endlist
|
|
\endlist
|
|
|
|
\omit ## Are the Xcode tools still needed separately? \endomit
|
|
|
|
\section1 Build Environment
|
|
|
|
To build Qt Creator itself from the source, you need:
|
|
\list
|
|
\o Qt 4.7 or later
|
|
\o On Windows, MinGW 4.4 or Microsoft Visual Studio 2008
|
|
\endlist
|
|
|
|
\section1 Supported Mobile Device Platforms
|
|
You can develop applications for the following mobile device
|
|
platforms:
|
|
|
|
\list
|
|
|
|
\o Symbian
|
|
|
|
\o Maemo and Maemo Application Development and Debugging Environment (MADDE)
|
|
|
|
\endlist
|
|
|
|
The following table summarizes operating system support for building
|
|
applications for mobile device platforms.
|
|
|
|
\table
|
|
\header
|
|
\o {1,3} Operating system
|
|
\o {3,1} Platform
|
|
\header
|
|
\o Desktop
|
|
\o Symbian
|
|
\o Maemo
|
|
\row
|
|
\o Windows
|
|
\o Yes
|
|
\o Yes
|
|
\o Yes
|
|
\row
|
|
\o Linux
|
|
\o Yes
|
|
\o No
|
|
\o Yes
|
|
\row
|
|
\o Mac OS X
|
|
\o Yes
|
|
\o No
|
|
\o No
|
|
\endtable
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-os-supported-platforms.html
|
|
\page creator-quick-tour.html
|
|
\nextpage creator-getting-started.html
|
|
|
|
\title Quick Tour
|
|
|
|
The figure below shows some of the components of Qt Creator in
|
|
\gui{Edit} mode.
|
|
|
|
\image qtcreator-breakdown.png
|
|
|
|
\section1 Qt Creator Modes
|
|
|
|
The mode selector allows you to quickly switch between tasks such as
|
|
editing project and source files, designing application UIs,
|
|
configuring how projects are built and
|
|
executed, and debugging your applications. To change modes, click the
|
|
icons, or use the \l{keyboard-shortcuts}{corresponding keyboard shortcut}.
|
|
|
|
\list
|
|
\o \gui Welcome mode for opening recent sessions and projects.
|
|
\o \gui{\l{Using the Editor}{Edit}} mode for editing project and source files.
|
|
\o \gui{\l{Implementing Application UI}{Design}} mode for designing and developing animated applications for
|
|
mobile devices.
|
|
\o \gui{\l{Debugging}{Debug}} mode for inspecting the state of your program while
|
|
debugging.
|
|
\o \gui{\l{Managing Projects}{Projects}} mode for configuring project building and
|
|
execution.
|
|
\o \gui{\l{Getting Help}{Help}} mode for viewing Qt documentation.
|
|
\endlist
|
|
|
|
Certain actions in Qt Creator trigger a mode change. For example,
|
|
\gui {Debug} > \gui {Start Debugging} > \gui {Start Debugging}
|
|
automatically switches to \gui {Debug} mode.
|
|
|
|
|
|
\section1 Browsing Project Contents
|
|
|
|
Use the sidebar to browse files, projects and bookmarks.
|
|
\image qtcreator-sidebar.png
|
|
|
|
You can select the content of the sidebar in the sidebar menu:
|
|
\list
|
|
\o \gui Projects shows a list of projects open in the current
|
|
session.
|
|
\o \gui{File System} shows the content of the currently selected
|
|
directory.
|
|
\o \gui Bookmarks shows all bookmarks for the current session.
|
|
\o \gui{Open Documents} shows currently open files.
|
|
\endlist
|
|
|
|
You can change the view of the sidebar in the following ways:
|
|
\list
|
|
\o To toggle the sidebar, click \inlineimage qtcreator-togglebutton.png
|
|
or press \key Alt+0 (\key Cmd+0 on Mac OS X).
|
|
\o To split the sidebar, click \inlineimage qtcreator-splitbar.png
|
|
. Select new content to view in the split view.
|
|
\o To close a sidebar view, click
|
|
\inlineimage qtcreator-closesidebar.png
|
|
.
|
|
\endlist
|
|
|
|
|
|
\section2 Viewing Project Files
|
|
|
|
When the sidebar shows projects, they are displayed in a project tree. The
|
|
project tree contains a list of all projects open in the current session.
|
|
The files for each project are grouped according to their file type.
|
|
|
|
You can use the project tree in the following ways:
|
|
\list
|
|
\o Double-click a file to open it in an editor.
|
|
\o Right-click an item in the project tree to bring up a
|
|
context menu containing the actions most commonly needed.
|
|
For example, through the menu of the project root directory you can,
|
|
build, re-build, clean and run the project.
|
|
\o To list all files in a project, click
|
|
\inlineimage qtcreator-filter.png
|
|
and select \gui{Simplify Tree}.
|
|
\o During a build, the build system automatically generates source
|
|
files. To hide these files, click \inlineimage qtcreator-filter.png
|
|
and select \gui{Hide Generated Files}.
|
|
\o To toggle the synchronization of your project tree with the file
|
|
opened in the editor, click
|
|
\inlineimage qtcreator-synchronizefocus.png
|
|
.
|
|
\o To see the absolute path of a file, move the mouse pointer over the
|
|
file name.
|
|
\endlist
|
|
|
|
|
|
\section1 Viewing Output
|
|
|
|
The task pane in Qt Creator can display one of the following panes:
|
|
\gui{Build Issues}, \gui{Search Results}, \gui{Application Output}, and
|
|
\gui{Compile Output}. Output panes are available in all
|
|
\l{Qt Creator Modes}{modes}.
|
|
|
|
|
|
\section2 Build Issues
|
|
|
|
The \gui{Build Issues} pane provides a list of errors and warnings
|
|
encoutered during a build. The pane filters out irrelevant output from
|
|
the build tools and presents the issues in an organized way.
|
|
|
|
\image qtcreator-build-issues.png
|
|
|
|
|
|
\section2 Search Results
|
|
|
|
The \gui{Search Results} pane displays the results for global searches
|
|
such as searching within a current document, files on disk, or all
|
|
projects. The figure below shows an example output of search result for all
|
|
occurrences of \c textfinder within the \c "/TextFinder" directory.
|
|
|
|
\image qtcreator-search-pane.png
|
|
|
|
|
|
\section2 Application Output
|
|
|
|
The \gui{Application Output} pane displays the status of a program when
|
|
it is executed, and the debug output. The figure below shows an example
|
|
output from qDebug().
|
|
|
|
\image qtcreator-application-output.png
|
|
|
|
|
|
\section2 Compile Output
|
|
|
|
The \gui{Compile Output} pane provides all output from the compiler. In
|
|
other words, it is a more detailed version of information displayed in the
|
|
\gui{Build Issues} pane.
|
|
|
|
\image qtcreator-compile-pane.png
|
|
|
|
|
|
\section1 Getting Help
|
|
|
|
Qt Creator comes fully integrated with Qt documentation and
|
|
examples using the Qt Help plugin. You can get help in the following
|
|
ways:
|
|
|
|
\list
|
|
|
|
\o To view documentation, switch to \gui Help mode.
|
|
|
|
\o To get context sensitive help, move the text cursor to a Qt class or
|
|
function and press \key F1. The documentation is displayed in a pane
|
|
next to the code editor, or, if there is not enough vertical space, in the
|
|
fullscreen \gui Help mode.
|
|
|
|
\endlist
|
|
|
|
\image qtcreator-context-sensitive-help.png
|
|
|
|
To select and configure how the documentation is displayed in the
|
|
\gui Help mode, select \gui Tools > \gui Options > \gui Help.
|
|
|
|
\section2 Adding External Documentation
|
|
|
|
You can display external documentation in the Qt Creator \gui Help mode.
|
|
To augument or replace the documentation that ships with Qt Creator and Qt:
|
|
\list 1
|
|
\o Create a .qch file from your documentation.
|
|
|
|
For information on how to prepare your documentation and create a
|
|
.qch file, see
|
|
\l{http://doc.qt.nokia.com/4.6/qthelp-framework.html}{The Qt Help Framework}.
|
|
\o Add the .qch file to Qt Creator by selecting \gui Tools >
|
|
\gui Options > \gui Help > \gui Documentation > \gui Add.
|
|
\endlist
|
|
|
|
|
|
\section1 Navigating with Keyboard
|
|
|
|
Qt Creator caters not only to developers who are used to using the mouse,
|
|
but also to developers who are more comfortable with the keyboard. A wide
|
|
range of \l{keyboard-shortcuts}{keyboard} and
|
|
\l{Searching With the Locator}{navigation} shortcuts are available to help
|
|
speed up the process of developing your application.
|
|
|
|
\section1 Developing Application UI
|
|
|
|
To help you design the user interface of your application, two visual
|
|
editors are integrated into Qt Creator:
|
|
|
|
\list
|
|
\o \QD
|
|
\o \QMLD
|
|
\endlist
|
|
|
|
The integration includes project management and code completion.
|
|
|
|
\section1 Using Qt Designer
|
|
|
|
Qt Creator automatically opens all .ui files in \QD.
|
|
|
|
\image qtcreator-formedit.png
|
|
|
|
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 unchecked, you can change the layout.
|
|
\o Click the header of an element and drag the element to a new
|
|
position.
|
|
\endlist
|
|
|
|
To change \QD properties, select \gui Tools > \gui Options >
|
|
\gui Designer.
|
|
\list
|
|
\o Set the class properties and code generation preferences in \gui
|
|
{Class Generation}.
|
|
\o Set an additional folder for saving templates in \gui{Template
|
|
Paths}.
|
|
\o Set the grid settings and preview preferences in \gui Forms. To
|
|
preview your form with skins, enable \gui{Print/Preview
|
|
Configuration} and select your skin. Otherwise default preview
|
|
settings are used.
|
|
|
|
To preview the settings, select \gui Tools > \gui{Form Editor} >
|
|
\gui Preview, or press \key Ctrl+Alt+R.
|
|
\o To specify embedded device profiles, such as style, font, and screen
|
|
resolution, select \gui{Embedded Design}.
|
|
\endlist
|
|
|
|
For more information on \QD, see
|
|
\l{http://doc.trolltech.com/designer-manual.html}{Qt Designer Manual}.
|
|
|
|
\section1 Using QML Designer
|
|
|
|
You can edit .qml files in either the visual \QMLD editor or in the
|
|
code editor.
|
|
|
|
In \gui Projects, double-click a .gml file to open it in the code
|
|
editor. Then select the \gui {Design} mode to edit the file in the
|
|
visual editor.
|
|
|
|
\image qmldesigner-visual-editor.png "Visual editor"
|
|
|
|
Use the visual editor panes to manage your project:
|
|
|
|
\list
|
|
|
|
\o \gui {Navigator} pane displays the items in the scene. You can
|
|
show and hide items to focus on specific parts of the application.
|
|
|
|
\o \gui {Library} pane displays lists of predefined \gui {Items} and
|
|
imported \gui {Resources} that you can use to design applications. The
|
|
images and other files that you copy to the project folder appear in the
|
|
\gui {Resources} pane.
|
|
|
|
\o \gui {Properties} pane displays the properties of the selected item.
|
|
You can also change the properties in the code editor.
|
|
|
|
\o \gui {State} pane displays the different states of the item. To add
|
|
states, click the empty slot. Then modify the new state in the editor.
|
|
In the code editor, you can see the changes recorded as changes to
|
|
the base state.
|
|
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-qml-application.html
|
|
\page creator-editor-using.html
|
|
\nextpage creator-editor-finding.html
|
|
|
|
\title Using the Editor
|
|
|
|
Qt Creator's code editor is designed to aid you in creating, editing and
|
|
navigating code. It is fully equipped with syntax checking, code
|
|
completion, context sensitive help and in-line error indicators while you
|
|
are typing.
|
|
|
|
|
|
\section1 Configuring the Editor
|
|
|
|
Qt Creator allows you to configure the text editor to suit your specific
|
|
needs. To configure the editor, select \gui Tools > \gui Options >
|
|
\gui{Text Editor}:
|
|
\list
|
|
\o Set the font preferences and apply syntax highlighting in
|
|
\gui{Font & Colors}.
|
|
\o Set tabs, indentation and the handling of whitespace in
|
|
\gui Behavior.
|
|
\o Set various display properties, such as
|
|
\l{Highlighting and Folding Blocks}{highlighting and folding blocks},
|
|
text wrapping or \l{Moving to Symbol Definition or Declaration}
|
|
{moving to symbol definition or declaration}
|
|
in \gui Display.
|
|
\o Configure \l{Code Completion}{code completion} in \gui Completion.
|
|
\endlist
|
|
|
|
|
|
\section1 Using the Editor Toolbar
|
|
|
|
The editor toolbar is located at the top of the editor view. It is context
|
|
sensitive and shows items relevant to the file currently open in the
|
|
editor.
|
|
|
|
\image qtcreator-editortoolbar-symbols.png
|
|
|
|
Use the toolbar to navigate between open files and symbols in use:
|
|
\list
|
|
\o To browse the history of edits for the currently open session, click
|
|
\inlineimage qtcreator-back.png
|
|
and \inlineimage qtcreator-forward.png
|
|
.
|
|
\o To go to any open file, select it from the \gui{Open files}
|
|
drop-down menu.
|
|
\o To jump to any symbol used in the current file, select it from the
|
|
\gui Symbols drop-down menu.
|
|
\endlist
|
|
|
|
When you create or edit forms in an .ui file, the toolbar contains
|
|
\QD specific tools.
|
|
|
|
If you are using a version control system, the toolbar enables you to
|
|
compare the current file with the version in the repository. For more
|
|
information on using Qt Creator with version control systems, see
|
|
\l{Using Version Control Systems}.
|
|
|
|
|
|
\section1 Splitting the Editor View
|
|
|
|
Split the editor view when you want to work on and view multiple files on
|
|
the same screen.
|
|
|
|
\image qtcreator-spliteditorview.png
|
|
|
|
You can split the editor view in two ways:
|
|
\list
|
|
\o To split the editor view into a top and bottom view, select
|
|
\gui Window > \gui Split or press \key{Ctrl+E, 2}.
|
|
|
|
Split command creates views below the currently active editor view.
|
|
\o To split the editor view into adjacent views, select
|
|
\gui Window > \gui{Split Side by Side} or press
|
|
\key{Ctrl+E, 3}.
|
|
|
|
Side by side split command creates views to the right of the
|
|
currently active editor view.
|
|
\endlist
|
|
|
|
To move between split views, select \gui Window >
|
|
\gui{Go to Next Split} or press \key{Ctrl+E, 0}.
|
|
|
|
To remove a split view, place the cursor within the view you want to
|
|
remove and select \gui Window > \gui{Remove Current Split} or press
|
|
\key{Ctrl+E, 0}. To remove all but the currently selected split view,
|
|
select \gui Window > \gui{Remove All Splits} or press \key{Ctrl+E, 1}.
|
|
|
|
|
|
\section1 Highlighting and Folding Blocks
|
|
|
|
Use block highlighting to visually separate parts of the code that belong
|
|
together. For example, when you place the cursor within the braces,
|
|
the code enclosed in braces is highlighted.
|
|
|
|
\image qtcreator-blockhighlighting.png
|
|
|
|
To enable block highlighting, select \gui Tools > \gui Options >
|
|
\gui{Text Editor} > \gui Display > \gui{Highlight blocks}.
|
|
|
|
Use the folding markers to collapse and expand blocks of code within
|
|
braces. Click the folding marker to collapse or expand a block. In the
|
|
figure above, the folding markers are located between the line number and
|
|
the text pane.
|
|
|
|
To show the folding markers, select \gui Tools > \gui Options >
|
|
\gui{Text Editor} > \gui Display > \gui{Display folding markers}.
|
|
|
|
|
|
\section1 Syntax Checking
|
|
|
|
As you write code Qt Creator checks code syntax. When it spots syntax error
|
|
in your code it underlines it and shows error details when you move the
|
|
mouse pointer over the error:
|
|
\list
|
|
\o Syntax errors are underlined in red.
|
|
|
|
In the following figure, semicolon is missing at the end of line.
|
|
|
|
\image qtcreator-syntaxerror.png
|
|
\o Semantic errors and warnings are underlined in olive.
|
|
|
|
In the following figure, the type is unknown.
|
|
|
|
\image qtcreator-semanticerror.png
|
|
\endlist
|
|
|
|
|
|
\section1 Code Completion
|
|
|
|
As you write code Qt Creator provides a list of context-sensitive
|
|
suggestions to the statement where your cursor is.
|
|
|
|
\image qtcreator-codecompletion.png
|
|
|
|
Set code completion preferences in \gui Tools > \gui Options >
|
|
\gui{Text Editor} > \gui Completion.
|
|
|
|
When completion is invoked manually, Qt Creator completes the common prefix
|
|
of the list of suggestions. This is especially useful for classes with
|
|
several similarly named members. To disable this functionality, uncheck
|
|
\gui{Autocomplete common prefix} in the code completion preferences.
|
|
|
|
The following table lists available types for code completion and icon
|
|
used for each.
|
|
|
|
\table
|
|
\header
|
|
\o Icon
|
|
\o Description
|
|
\row
|
|
\i \inlineimage completion/class.png
|
|
\i A class
|
|
\row
|
|
\i \inlineimage completion/enum.png
|
|
\i An enum
|
|
\row
|
|
\i \inlineimage completion/enumerator.png
|
|
\i An enumerator (value of an enum)
|
|
\row
|
|
\i \inlineimage completion/func.png
|
|
\i A function
|
|
\row
|
|
\i \inlineimage completion/func_priv.png
|
|
\i A private function
|
|
\row
|
|
\i \inlineimage completion/func_prot.png
|
|
\i A protected function
|
|
\row
|
|
\i \inlineimage completion/var.png
|
|
\i A variable
|
|
\row
|
|
\i \inlineimage completion/var_priv.png
|
|
\i A private variable
|
|
\row
|
|
\i \inlineimage completion/var_prot.png
|
|
\i A protected variable
|
|
\row
|
|
\i \inlineimage completion/signal.png
|
|
\i A signal
|
|
\row
|
|
\i \inlineimage completion/slot.png
|
|
\i A slot
|
|
\row
|
|
\i \inlineimage completion/slot_priv.png
|
|
\i A private slot
|
|
\row
|
|
\i \inlineimage completion/slot_prot.png
|
|
\i A protected slot
|
|
\row
|
|
\i \inlineimage completion/keyword.png
|
|
\i A keyword
|
|
\row
|
|
\i \inlineimage completion/macro.png
|
|
\i A macro
|
|
\row
|
|
\i \inlineimage completion/namespace.png
|
|
\i A namespace
|
|
\endtable
|
|
|
|
|
|
\section1 Moving to Symbol Definition or Declaration
|
|
|
|
In Qt Creator you can move directly to the definition or the declaration of
|
|
a symbol by holding the \key Ctrl and clicking the symbol.
|
|
|
|
To enable this function, in \gui Tools > \gui Options >
|
|
\gui{Text Editor} > \gui Behavior select \gui{Enable mouse navigation}.
|
|
|
|
|
|
\section1 Using an External Editor
|
|
|
|
To open the file you are currently viewing in an external editor, select
|
|
\gui Edit > \gui Advanced > \gui{Open in External Editor}.
|
|
|
|
To use the external editor of your choice:
|
|
\list 1
|
|
\o On Windows add the editor path to the \bold Path system variable.
|
|
On Linux and Mac OS X add the editor path to the \bold PATH
|
|
environment variable.
|
|
\o In Qt Creator select \gui Tools > \gui Options... >
|
|
\gui Environment > \gui General.
|
|
\o In \gui{External editor} enter the name of the application followed
|
|
by \key Space and \tt{\bold %f}. For example, to open the file in
|
|
Smultron, enter \tt{\bold{smultron %f}}
|
|
|
|
To further define how to open the file in the external editor, you
|
|
can use the following variables separated by space:
|
|
\list
|
|
\o Current line number \tt{\bold %l}
|
|
\o Current column number \tt{\bold %c}
|
|
\o Editor's x position on the screen \tt{\bold %x}
|
|
\o Editor's y position on the screen \tt{\bold %y}
|
|
\o Editor's width in pixels \tt{\bold %w}
|
|
\o Editor's height in pixels \tt{\bold %h}
|
|
\o Editor's width in characters \tt{\bold %W}
|
|
\o Editor's height in characters \tt{\bold %H}
|
|
\o To pass % symbol to the editor \tt{\bold %%}
|
|
\endlist
|
|
|
|
\note Not all variables work with all editors.
|
|
\endlist
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-editor-using.html
|
|
\page creator-editor-finding.html
|
|
\nextpage creator-editor-refactoring.html
|
|
|
|
\title Finding and Replacing
|
|
|
|
To search through the currently open file:
|
|
\list 1
|
|
\o Press \key Ctrl+F or select \gui Edit > \gui Find/Replace >
|
|
\gui{Current Document}.
|
|
\o Enter the text you are looking for.
|
|
|
|
If the text is found, all occurrences are highlighted as you type.
|
|
\o To go to the next occurrence, click \inlineimage qtcreator-next.png
|
|
, or press \key F3. To go to the previous occurrence click
|
|
\inlineimage qtcreator-previous.png
|
|
, or press \key Shift+F3.
|
|
\endlist
|
|
|
|
To narrow your search results, click
|
|
\inlineimage qtcreator-locator-magnify.png
|
|
in the \gui Find/Replace pane and select any of the following
|
|
preferences:
|
|
\list
|
|
\o To make your search case sensitive, select
|
|
\inlineimage qtcreator-editor-casesensitive.png
|
|
.
|
|
\o To search only whole words, select
|
|
\inlineimage qtcreator-editor-wholewords.png
|
|
.
|
|
\o To search using regular expressions, select
|
|
\inlineimage qtcreator-editor-regularexpressions.png
|
|
.
|
|
Regular expressions used in Qt Creator are modeled on Perl regular
|
|
expressions. For more information on using regular expressions, see
|
|
\l {http://doc.qt.nokia.com/4.6/qregexp.html#details}
|
|
{Detailed Description} in the QRegExp Class Reference.
|
|
\endlist
|
|
|
|
\note If you have selected text before selecting \gui Find/Replace, the
|
|
search is conducted within the selection.
|
|
|
|
To replace occurrences of the existing text, enter the new text in the
|
|
\gui{Replace with} text box.
|
|
\list
|
|
\o To replace the selected occurrence and move to the next one,
|
|
click \inlineimage qtcreator-next.png
|
|
or press \key Ctrl+=.
|
|
\o To replace the selected occurrence and move to the previous one,
|
|
click \inlineimage qtcreator-previous.png
|
|
.
|
|
\o To replace all occurrences in the file, click \gui{Replace All}.
|
|
\endlist
|
|
|
|
\section1 Advanced Search
|
|
|
|
To search through projects, files on a file system or the currently open
|
|
file:
|
|
\list 1
|
|
\o Press \key Ctrl+Shift+F or select \gui Edit >
|
|
\gui Find/Replace > \gui{Advanced Find} >
|
|
\gui{Open Advanced Find...}.
|
|
\o Select the scope of your search:
|
|
\list
|
|
\o \gui{All Projects} searches files matching the defined file
|
|
pattern in all currently open projects.
|
|
|
|
For example, to search for \tt previewer only in \tt .cpp
|
|
and \tt .h files, enter in \gui{File pattern}
|
|
\tt *.cpp,*.h.
|
|
|
|
\image qtcreator-search-allprojects.png
|
|
|
|
\o \gui{Current Project} searches files matching the defined file
|
|
pattern only in the project you are currently editing.
|
|
\o \gui{Files on File System} recursively searches files matching
|
|
the defined file pattern in the selected directory.
|
|
\o \gui{Current File} searches only the current file.
|
|
\endlist
|
|
\o Enter the text you are looking for and click \gui Search.
|
|
|
|
\image qtcreator-searchresults.png
|
|
|
|
A list of files containing the searched text is displayed in the
|
|
\gui{Search Results} pane.
|
|
\list
|
|
\o To see all occurrences in a file, double-click the file name in
|
|
the list.
|
|
\o To go to an occurrence, double-click it.
|
|
\endlist
|
|
\endlist
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-editor-finding.html
|
|
\page creator-editor-refactoring.html
|
|
\nextpage creator-editor-locator.html
|
|
|
|
\title Refactoring
|
|
|
|
Code refactoring is the process of changing the code without modifying the
|
|
existing functionality of your application. By refactoring your code you
|
|
can:
|
|
\list
|
|
\o Improve internal quality of your application
|
|
\o Improve performance and extensibility
|
|
\o Improve code readability and maintainability
|
|
\o Simplify code structure
|
|
\endlist
|
|
|
|
\section1 Finding Symbols
|
|
|
|
To find the use of a specific symbol in your project:
|
|
\list 1
|
|
\o In the editor place the cursor on the symbol and select \gui Tools
|
|
> \gui C++ > \gui{Rename Symbol under Cursor} or press
|
|
\key Ctrl+Shift+U.
|
|
|
|
Qt Creator looks for the symbol in the following locations:
|
|
\list
|
|
\o Files listed as a part of the project
|
|
\o Files directly used by the project files (for example, generated
|
|
files)
|
|
\o Header files of used frameworks and libraries
|
|
\endlist
|
|
\o The \gui{Search Results} pane opens and shows the location and
|
|
number of instances of the symbol in the current project.
|
|
|
|
\image qtcreator-refactoring-find.png
|
|
\endlist
|
|
|
|
You can browse the search results in the following ways:
|
|
\list
|
|
\o To go directly to an instance, double-click the instance in the
|
|
\gui{Search Results} pane.
|
|
\o To move between instances, click
|
|
\inlineimage qtcreator-forward.png
|
|
and
|
|
\inlineimage qtcreator-back.png
|
|
in the \gui{Search Results} pane.
|
|
\o To expand and collapse the list of all instances, click
|
|
\inlineimage qtcreator-expand.png
|
|
.
|
|
\o To clear the search results, click \inlineimage qtcreator-clear.png
|
|
.
|
|
\endlist
|
|
|
|
\section1 Renaming Symbols
|
|
|
|
To rename a specific symbol in your project:
|
|
\list 1
|
|
\o In the editor, place the cursor on the symbol you would like to
|
|
change and select \gui Tools > \gui C++ >
|
|
\gui{Rename Symbol under Cursor} or press \key Ctrl+Shift+R.
|
|
|
|
The \gui{Search Results} pane opens and shows the location and
|
|
number of instances of the symbol in the current project.
|
|
|
|
\image qtcreator-refactoring-replace.png
|
|
\o To replace all selected instances, enter the name of the new symbol
|
|
in the \gui{Replace with} text box and click \gui Replace.
|
|
|
|
To omit an instance, uncheck the check-box next to the instance.
|
|
|
|
\note This action replaces all selected instances of the symbol in
|
|
all files listed in the \gui{Search Results} pane. You cannot
|
|
undo this action.
|
|
\endlist
|
|
|
|
\note Renaming local symbols does not open the \gui{Search Results} pane.
|
|
The instances of the symbol are highlighted in code and you can edit the
|
|
symbol. All instances of the local symbol are changed as you type.
|
|
*/
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-editor-locator.html
|
|
\page creator-project-managing.html
|
|
\nextpage creator-project-creating.html
|
|
|
|
\title Managing Projects
|
|
|
|
Qt Creator allows you to deploy various types of projects and provides a
|
|
platform to work on different types of projects:
|
|
\list
|
|
\o To work with \bold{qmake projects}, open a \c .pro file. For more
|
|
information, see \l{Setting Up a qmake Project}.
|
|
\o To work with \bold{CMake projects} you need to have CMake version
|
|
2.8.0 or later installed. For more information, see
|
|
\l{Setting Up a CMake Project}.
|
|
\o Qt Creator supports generic projects. For more information, see
|
|
\l{Setting Up a Generic Project}.
|
|
\endlist
|
|
|
|
\section1 External Libraries
|
|
|
|
Through external libraries Qt Creator can support code completion and
|
|
syntax highlighting for external libraries as if they were a part of the
|
|
current project or the Qt library.
|
|
|
|
The procedure of adding a library to a project depends on the type of
|
|
project, which influences the build system used.
|
|
|
|
\list
|
|
\o For information on adding external libraries to qmake projects, see
|
|
\l{Adding External Libraries to a qmake Project}.
|
|
\o For information on adding external libraries to CMake projects, see
|
|
\l{Adding External Libraries to a CMake Project}.
|
|
\o For information on adding external libraries to generic projects, see
|
|
\l{Adding External Libraries to a Generic Project}.
|
|
\endlist
|
|
|
|
\section1 Session Management
|
|
In Qt Creator a session is a collection of bookmarks, breakpoints and
|
|
watchers and can include multiple open projects. To learn about using and
|
|
managing sessions, see \l{Managing Sessions}.
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-managing.html
|
|
\page creator-project-creating.html
|
|
\nextpage creator-project-qmake.html
|
|
|
|
\title Creating a Project
|
|
|
|
To create a new project:
|
|
\list 1
|
|
\o Select \gui File > \gui{New File or Project} and select the type of your
|
|
project.
|
|
|
|
The contents of the following dialogs depend on the project type.
|
|
This example uses \gui {Qt Gui Application}.
|
|
|
|
\image qtcreator-new-project.png
|
|
\o Name the project and set its path. To select the path from a
|
|
directory tree, click \gui Browse.
|
|
|
|
Avoid using spaces and special characters in the project name and
|
|
path.
|
|
|
|
\image qtcreator-intro-and-location.png
|
|
\o Specify the name of the class you want to create and using the
|
|
drop-down menu select its base class type.
|
|
|
|
Note that the \gui{Header file}, \gui{Source file} and
|
|
\gui{Form file} fields are automatically updated as you name your
|
|
class.
|
|
|
|
\image qtcreator-class-info.png
|
|
\o Review the project settings.
|
|
|
|
To create the project, click \gui Finish.
|
|
|
|
\image qtcreator-new-project-summary.png
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-creating.html
|
|
\page creator-project-qmake.html
|
|
\nextpage creator-project-cmake.html
|
|
|
|
\title Setting Up a qmake Project
|
|
|
|
\section1 Selecting the Qt Version
|
|
|
|
Qt Creator allows you to have multiple versions of Qt installed on
|
|
your computer and use different versions for your projects.
|
|
|
|
If Qt Creator finds \bold qmake in the PATH environment variable, it uses
|
|
that version. This \l{glossary-system-qt}{version of Qt} is referred to as
|
|
\bold{Qt in PATH}. If you intend to use only one version of Qt and it is
|
|
already in the PATH and correctly set up for command line use, you do not
|
|
need to manually configure your Qt version.
|
|
|
|
\note By default, Qt Creator compiles projects with the
|
|
\l{glossary-default-qt}{default Qt version}. For information on how to
|
|
override this setting, see \l{Build Settings}.
|
|
|
|
\section2 Windows
|
|
|
|
To add a Qt version for \bold MinGW:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Qt4 >
|
|
\gui{Qt Versions}.
|
|
\o Click \inlineimage qtcreator-windows-add.png
|
|
and enter the name of the version in \gui{Version Name} field.
|
|
\o Enter the qmake binary path in the \gui{qmake Location}.
|
|
\o Enter the MinGW installation path in the \gui{MinGW Directory}.
|
|
|
|
\image qtcreator-qt4-qtversions-win-mingw.png
|
|
\endlist
|
|
|
|
To add a Qt version for a \bold{Microsoft Visual C++} compiler:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Qt4 >
|
|
\gui{Qt Versions}.
|
|
\o Qt Creator automatically sets the correct environment variables for
|
|
compilation. Select the internal version number of the installed
|
|
Microsoft Visual C++ tool chains using the \gui MSVC drop-down
|
|
box:
|
|
\list
|
|
\o \bold 7.1 for Visual Studio 2003
|
|
\o \bold 8.0 for Visual Studio 2005
|
|
\o \bold 9.0 for Visual Studio 2008
|
|
\endlist
|
|
|
|
\note If you are using the
|
|
\bold{Windows SDK for Windows Server 2008}, Qt Creator identifies
|
|
it as version 9.0.
|
|
|
|
\image qtcreator-qt4-qtversions-win-msvc.png
|
|
\endlist
|
|
|
|
If you are using \bold{Qt for Symbian} and your S60 SDK is registered
|
|
with devices.exe, Qt Creator automatically detects the Qt version. To add a
|
|
Qt for Symbian version:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Qt4 >
|
|
\gui{Qt Versions}.
|
|
\o Select the \gui{S60 SDK} you want the Qt Creator to use.
|
|
|
|
\image qtcreator-qt4-qtversions-win-symbian.png
|
|
\o To build an application for your device using GCCE, enter the path
|
|
to the \bold{CSL ARM Toolchain} directory in
|
|
\gui{CSL\\GCCE Directory}.
|
|
|
|
You do not need to specify this path if the compiler is included in
|
|
the PATH environment variable.
|
|
\o To build an application for the emulator (WINSCW toolchain), enter
|
|
the path to your Carbide C++ installation directory in
|
|
\gui{Carbide Directory}.
|
|
|
|
You need to have Carbide C++ version 2.0 or later installed.
|
|
\endlist
|
|
|
|
\section2 Linux
|
|
|
|
To compile a project in Qt Creator, Linux uses GNU Compiler Collection
|
|
(GCC). Intel Compiler Collection (ICC) is supported as a drop-in
|
|
replacement for GCC.
|
|
|
|
To add a Qt version:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Qt4 >
|
|
\gui{Qt Versions}.
|
|
\o Click \inlineimage qtcreator-linux-add.png
|
|
and enter the name of the version in \gui{Version Name}.
|
|
\o Enter the path to the qmake binary in \gui{Path to qmake}.
|
|
\endlist
|
|
|
|
\section2 Mac OS X
|
|
|
|
To compile a project in Qt Creator, Mac OS X uses GNU Compiler Collection
|
|
(GCC), which is part of Xcode.
|
|
|
|
To add a Qt version:
|
|
\list 1
|
|
\o Select \gui{Qt Creator} > \gui Preferences... > \gui{Qt Versions}.
|
|
\o Click \inlineimage qtcreator-macosx-add.png
|
|
and enter the name of the version in \gui{Version Name}.
|
|
\o Enter the path to the qmake binary in \gui{Path to qmake}.
|
|
|
|
\image qtcreator-qt4-qtversions.png
|
|
\endlist
|
|
|
|
|
|
\section1 Setting Up a Project
|
|
|
|
To view and modify the settings for currently open projects, switch to the
|
|
\gui Projects mode by pressing \key Ctrl+4.
|
|
|
|
\image qtcreator-projectpane.png
|
|
|
|
The project pane consists of three tabs
|
|
\list
|
|
\o Targets
|
|
\o Editor Settings
|
|
\o Dependencies
|
|
\endlist
|
|
|
|
Use the \gui Build and \gui Run buttons on *Desktop* to switch between
|
|
the build and run settings for the active project.
|
|
|
|
If you have multiple projects open in Qt Creator, use
|
|
\gui{Select a Project} option at the top to navigate between different
|
|
project edits.
|
|
|
|
\section1 Build Settings
|
|
|
|
Different build configurations allow you to quickly switch between
|
|
different build settings. By default, Qt Creator creates \bold debug
|
|
and \bold release build configurations. Both of these configurations use
|
|
the \l{glossary-default-qt}{default Qt version}.
|
|
|
|
\image qtcreator-ppbuildsettings.png
|
|
|
|
\section2 Adding and Removing Build Configurations
|
|
|
|
To add a new build configuration, click \gui Add and select the type of
|
|
configuration you would like add. You can add as many build configurations
|
|
as you need.
|
|
|
|
To delete the build configuration currently selected, click \gui Remove.
|
|
|
|
\section2 Editing Build Configurations
|
|
|
|
To edit a build configuration:
|
|
\list 1
|
|
\o Select the build configuration you want to edit in
|
|
\gui{Edit Build Configuration}.
|
|
\o In section \gui General, you can specify:
|
|
\list
|
|
\o The \l{glossary-project-qt}{Qt version} you want to use to
|
|
build your project. For more information, see
|
|
\l{Selecting the Qt version}.
|
|
\o The toolchain required to build the project.
|
|
\o If you want to \l{glossary-shadow-build}{shadow build} your
|
|
project, check the \gui{Shadow Build} checkbox and select the
|
|
build directory.
|
|
\endlist
|
|
\endlist
|
|
|
|
\section2 Build Steps
|
|
|
|
The build system of Qt Creator is built on qmake and make. In
|
|
\gui{Build Steps} you can change the settings for qmake and make. Qt
|
|
Creator runs the make command using the Qt version defined for the current
|
|
build configuration.
|
|
|
|
\section2 Clean Steps
|
|
|
|
The cleaning process is used to remove intermediate files. This process
|
|
might help you to fix obscure issues during the process of building a
|
|
project.
|
|
|
|
You can define the cleaning steps for your builds in the \gui{Clean Steps}:
|
|
\list
|
|
\o To add a clean step using make or a custom process, click
|
|
\gui{Add clean step} and select the type of step you want to add.
|
|
|
|
By default, custom steps are disabled. Activate customs steps by
|
|
checking the \gui{Enable Custom Process Step} check-box.
|
|
\o To remove a clean step, click \gui{Remove clean step} and select the
|
|
step you want to remove.
|
|
\o To change the order of steps, click
|
|
\inlineimage qtcreator-movestep.png
|
|
.
|
|
\endlist
|
|
|
|
\section2 Build Environment
|
|
|
|
You can specify the environment you want to use for building in the
|
|
\bold{Build Environment} section. By default, the environment in which Qt
|
|
Creator was started is used and modified to include the Qt version.
|
|
Depending on the selected Qt version, Qt Creator automatically sets the
|
|
necessary environment variables. You can edit existing environment
|
|
variables or add, reset and unset new variables based on your project
|
|
requirements.
|
|
|
|
|
|
\section1 Run Settings
|
|
|
|
Qt Creator automatically creates run configurations for your project.
|
|
These run configurations derive their executable from the parsed .pro
|
|
files. You can also create custom executable run configurations where you
|
|
can set the executable to be run.
|
|
|
|
\image qtcreator-pprunsettings.png
|
|
|
|
|
|
\section1 File Encoding
|
|
|
|
To define the default file encoding, select the desired encoding in the
|
|
\gui{Editor Settings}. By default, the Qt Creator uses the file encoding
|
|
used by your system.
|
|
|
|
|
|
\section1 Dependencies
|
|
|
|
If you have multiple projects loaded in your session, you can define the
|
|
dependencies between them. This affects the build order of your
|
|
projects.
|
|
|
|
\note These dependencies are unrelated to the dependencies inside a qmake
|
|
project.
|
|
|
|
To define the dependencies:
|
|
\list 1
|
|
\o Select the project for which you want to configure dependencies.
|
|
\o In the \gui Dependencies section check the checkboxes to select
|
|
other projects as dependencies.
|
|
\endlist
|
|
|
|
|
|
\section1 Adding External Libraries to a qmake Project
|
|
|
|
Through external libraries Qt Creator can support code completion and
|
|
syntax highlighting as if they were part of the current project or the Qt
|
|
library.
|
|
|
|
To add an external library:
|
|
\list
|
|
\o Open your project file (.pro) using the \gui Projects pane.
|
|
\o Follow the instructions at \l http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries
|
|
{Declaring other Libraries}.
|
|
\endlist
|
|
|
|
Syntax completion and highlighting work once your project successfully
|
|
builds and links against the external library.
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-quick-tour.html
|
|
\page creator-getting-started.html
|
|
\nextpage creator-writing-program.html
|
|
|
|
\title Getting Started
|
|
|
|
This section contains examples that illustrate how to use Qt Creator and the
|
|
integrated design tools, \QD and \QMLD, to create simple applications:
|
|
|
|
\list
|
|
\o \l{Writing a Simple Program}
|
|
\o \l{Creating an Animated Application}
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-writing-program.html
|
|
\page creator-qml-application.html
|
|
\nextpage creator-editor-using.html
|
|
|
|
\title Creating an Animated Application
|
|
|
|
\note This tutorial assumes that you are familiar with the QML declarative
|
|
language.
|
|
|
|
This tutorial describes how to use Qt Creator to create a small animated
|
|
Qt application, Hello World.
|
|
|
|
\image qmldesigner-helloworld.png "Hello World"
|
|
|
|
\section1 Creating the Hello World 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 Quick Project > QML Application > OK}.
|
|
|
|
\image qmldesigner-new-project.png "New File or Project dialog"
|
|
|
|
The \gui{Introduction and Project Location} dialog opens.
|
|
|
|
\image qmldesigner-new-project-location.png "Introduction and Project Location dialog"
|
|
|
|
\o In the \gui{Name} field, type \bold {Hello World}.
|
|
|
|
\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{Project Management} dialog opens.
|
|
|
|
\image qmldesigner-new-project-summary.png "Project Management dialog"
|
|
|
|
\o Review the project settings, and click \gui{Finish} to create the project.
|
|
|
|
\endlist
|
|
|
|
The HelloWorld project now contains the following files:
|
|
|
|
\list
|
|
\o HelloWorld.qmlproject
|
|
\o HelloWorld.qml
|
|
\endlist
|
|
|
|
\image qmldesigner-new-project-contents.png "HelloWorld project contents"
|
|
|
|
The .qmlproject file defines that all QML, JavaScript, and image files in
|
|
the project folder belong to the project. The .qml file contains some example
|
|
code that specifies the screen size (200x200) and a label that contains
|
|
the text \bold {Hello World}.
|
|
|
|
\section1 Designing the User Interface
|
|
|
|
\list
|
|
|
|
\o In the \gui{Editor} mode, double-click the HelloWorld.qml file in
|
|
the \gui{Projects} pane to open it in the code editor.
|
|
|
|
\o To set the screen size to that of some Symbian devices in portrait
|
|
mode, for example, change the \c height to \bold 240 and \c width to \bold 320.
|
|
|
|
\o Click \gui{Design} to design the UI in the visual \QMLD editor.
|
|
|
|
\o Drag and drop a \gui {Rectangle} from the \gui {Library} pane to the
|
|
scene.
|
|
|
|
\image qmldesigner-helloworld-widget-add.png "Add widget to Hello World"
|
|
|
|
\o Edit the \gui {Properties} of the item to turn it into a red ball:
|
|
|
|
\list
|
|
|
|
\o In the \gui {Advanced} tab, click the color picker to select a red
|
|
color.
|
|
|
|
\o In the \gui {Radius} field, use the slider to set the radius value
|
|
to \bold 50.
|
|
|
|
\image qmldesigner-helloworld-widget-edit.png "Edit the widget"
|
|
|
|
\endlist
|
|
|
|
\o To create a blue ball, press \key {Ctrl+C} and \key {Ctrl+V} to copy
|
|
and paste the red one, and then change its color to blue.
|
|
|
|
\image qmldesigner-helloworld-base-state.png "Hello World first view"
|
|
|
|
The first view of your application is now ready.
|
|
|
|
\note You can use graphical design tools to create nice images and
|
|
copy them to the projects folder to display them in the \gui {Library}
|
|
pane in \gui {Resources}.
|
|
|
|
\o In the \gui State pane, click the plus sign to add another view, or \e state
|
|
to the application.
|
|
|
|
\o Modify the state by dragging and dropping the widgets to switch their
|
|
places.
|
|
|
|
\image qmldesigner-helloworld-state1.png "Hello World second view"
|
|
|
|
\endlist
|
|
|
|
\section1 Animating the Scene
|
|
|
|
Animate the scene so that the widgets appear to switch places
|
|
on the screen.
|
|
|
|
\list 1
|
|
|
|
\o Click \gui {Edit} to open HelloWorld.qml in the code editor.
|
|
|
|
\o Add the following code to create a transition:
|
|
|
|
\code
|
|
transitions: [
|
|
Transition {
|
|
NumberAnimation { properties: "x, y"; duration: 500 }
|
|
}
|
|
\endcode
|
|
|
|
\note The code editor completes the code for you as you type.
|
|
|
|
\o Click the \inlineimage qtcreator-run.png
|
|
button to check that the application can be built and run.
|
|
|
|
\endlist
|
|
|
|
\section1 Adding Interaction
|
|
|
|
Add interaction to the scene to allow users to click on the screen to start
|
|
the animation.
|
|
|
|
\list 1
|
|
|
|
\o Click \gui{Design} to open HelloWorld.qml in the visual editor.
|
|
|
|
\o Drag and drop a \gui {Mouse Area} from the \gui {Library} to the scene.
|
|
|
|
\o In the \gui {Properties} pane, \gui {Anchor} tab, click the
|
|
\inlineimage qmldesigner-anchor-fill-screen.png
|
|
button to make the mouse region cover the whole screen.
|
|
|
|
\o In the code editor, use data binding to add a \c when statement to
|
|
the states sections, as illustrated by the following code:
|
|
|
|
\code
|
|
|
|
states: [
|
|
State {
|
|
name: "State1"
|
|
when: mousearea1.pressed
|
|
\endcode
|
|
|
|
\endlist
|
|
|
|
\section1 Buiding and Running the Application
|
|
|
|
\list 1
|
|
|
|
\o Press \key {Ctrl+R} to build and run the application.
|
|
|
|
\o Click the screen and keep the mouse button pressed down to run the
|
|
animation.
|
|
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-getting-started.html
|
|
\page creator-writing-program.html
|
|
\nextpage creator-qml-application.html
|
|
|
|
\title Writing a Simple Program
|
|
|
|
\note This tutorial assumes that you have experience in writing basic Qt
|
|
applications, using \QD to design user interfaces and using the Qt
|
|
Resource System.
|
|
|
|
This tutorial describes how to use Qt Creator
|
|
to create a small Qt application, Text Finder. It is a simplified version of the
|
|
QtUiTools \l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder}
|
|
example.
|
|
|
|
\image qtcreator-textfinder-screenshot.png
|
|
|
|
\section1 Setting Up Your Environment
|
|
|
|
Qt Creator automatically detects whether the location of Qt is in your \c PATH variable.
|
|
If you have installed several Qt versions, follow the
|
|
instructions in \l{Selecting the Qt version} to set the Qt path.
|
|
|
|
\section1 Creating the Text Finder 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 Application Project > Qt Gui
|
|
Application > OK}.
|
|
|
|
\image qtcreator-new-project.png "New File or Project dialog"
|
|
|
|
The \gui{Introduction and Project Location} dialog opens.
|
|
|
|
\image qtcreator-intro-and-location.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{Select Required Qt Versions} dialog opens.
|
|
|
|
\image qtcreator-new-project-qt-versions.png "Select Required Qt Versions dialog"
|
|
|
|
\o Click \gui{Next} to use the Qt version set in the path in your project.
|
|
|
|
The \gui{Class Information} dialog opens.
|
|
|
|
\image qtcreator-class-info.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.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} (\l{http://doc.trolltech.com/qlabel.html}{QLabel})
|
|
\o \gui{Line Edit} (\l{http://doc.trolltech.com/qlineedit.html}{QLineEdit})
|
|
\o \gui{Push Button} (\l{http://doc.trolltech.com/qpushbutton.html}{QPushButton})
|
|
|
|
\endlist
|
|
|
|
\image qtcreator-textfinder-ui-widgets.png "Adding widgets to Text Finder UI"
|
|
|
|
\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 Press \key {Ctrl+A} to select the widgets and click \gui{Lay out Horizontally}
|
|
(or press \gui{Ctrl+H}) to apply a horizontal layout
|
|
(\l{http://doc.trolltech.com/qhboxlayout.html}{QHBoxLayout}).
|
|
|
|
\image qtcreator-texfinder-ui-horizontal-layout.png "Applying horizontal layout"
|
|
|
|
\o Drag and drop a \gui{Text Edit} widget (\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit})
|
|
to the form.
|
|
|
|
\o Select the screen area and click \gui{Lay out Vertically} (or press \gui{Ctr+V})
|
|
to apply a vertical layout (\l{http://doc.trolltech.com/qvboxlayout.html}{QVBoxLayout}).
|
|
|
|
\image qtcreator-textfinder-ui.png "Text Finder UI"
|
|
|
|
\o Press \gui{Ctrl+S} to save your changes.
|
|
|
|
\endlist
|
|
|
|
Applying the horizontal and vertical layouts ensures that the application UI scales to different
|
|
screen sizes.
|
|
|
|
For more information about designing forms with \QD, see the
|
|
\l{http://doc.trolltech.com/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
|
|
slot, \c{on_findButton_clicked()}, to carry out the find operation. You
|
|
also need a private function, \c{loadTextFile()}, to read and display the
|
|
contents of the input text file in the
|
|
\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit}.
|
|
|
|
\list 1
|
|
|
|
\o In the \gui{Projects} view, double-click the \c{textfinder.h} file
|
|
to open it for editing.
|
|
|
|
\o Add a private slot in a \c{private slots} section and a private function
|
|
in the \c{private} section, after the \c{Ui::TextFinder} function, 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} view, double-click the textfinder.cpp file
|
|
to open it for editing.
|
|
|
|
\o Add code to load a text file using
|
|
\l{http://doc.trolltech.com/qfile.html}{QFile}, read it with
|
|
\l{http://doc.trolltech.com/qtextstream.html}{QTextStream}, and
|
|
then display it on \c{textEdit} with
|
|
\l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()}
|
|
This is illustrated by the following code snippet:
|
|
|
|
\snippet examples/textfinder/textfinder.cpp 0
|
|
|
|
\o To use \l{http://doc.trolltech.com/qfile.html}{QFile} and
|
|
\l{http://doc.trolltech.com/qtextstream.html}{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.trolltech.com/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 > OK}.
|
|
\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 your program.
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-debugging.html
|
|
\page creator-version-control.html
|
|
\nextpage adding-plugins.html
|
|
|
|
\title Using Version Control Systems
|
|
|
|
\table
|
|
\caption Version control systems supported by Qt Creator
|
|
\row
|
|
\i \bold{git}
|
|
\i \l{http://git-scm.com/}
|
|
\i
|
|
\row
|
|
\i \bold{Subversion}
|
|
\i \l{http://subversion.tigris.org/}
|
|
\i
|
|
\row
|
|
\i \bold{Perforce}
|
|
\i \l{http://www.perforce.com}
|
|
\i Server version 2006.1 and later
|
|
\row
|
|
\i \bold{CVS}
|
|
\i \l{http://www.cvshome.org}
|
|
\i
|
|
\endtable
|
|
|
|
|
|
\section1 Setting Up Version Control Systems
|
|
|
|
Qt Creator uses the version control system's command line clients to
|
|
access your repositories. To set it up, you must ensure that these command
|
|
line clients can be located via the \c{PATH} environment variable.
|
|
To specify the path to the command line client's executable, go to the settings
|
|
pages in \gui{Tools} > \gui{Options...}.
|
|
|
|
|
|
\section1 Setting Up Common Options
|
|
|
|
The \gui{Version Control > Common} settings page features common settings for
|
|
version control systems, such as commit message line wrapping and checking
|
|
options.
|
|
|
|
\gui{Submit message checking script} is a script or program that can be
|
|
used to perform checks on the submit message before submitting. The submit
|
|
message is passed in as the script's first parameter. If there is an error,
|
|
the script should output a message on standard error and return a non-zero
|
|
exit code.
|
|
|
|
\gui{User/alias configuration file} takes a file in mailmap format that
|
|
lists user names and aliases. For example:
|
|
|
|
\code
|
|
Jon Doe <Jon.Doe@company.com>
|
|
Hans Mustermann <Hans.Mustermann@company.com> hm <info@company.com>
|
|
\endcode
|
|
|
|
Notice that the second line specifies the alias \e{hm} and the
|
|
corresponding email address for \e{Hans Mustermann}. If the user/alias
|
|
configuration file is present, the submit editor displays a context
|
|
menu with \gui{Insert name...} that pops up a dialog letting the user
|
|
select a name.
|
|
|
|
\gui{User fields configuration file} is a simple text file consisting of
|
|
lines specifying submit message fields that take user names, for example:
|
|
|
|
\code
|
|
Reviewed-by:
|
|
Signed-off-by:
|
|
\endcode
|
|
|
|
These fields appear below the submit message. They provide completion
|
|
for the aliases/public user names specified in the
|
|
\e{User/alias configuration file} as well as a button that opens the
|
|
aforementioned user name dialog.
|
|
|
|
|
|
\section1 Using Version Control Systems
|
|
|
|
The version control sub-menus are in \gui Tools > \gui Options...
|
|
> \gui{Version Control}. The version control system
|
|
managing the current project is displayed here.
|
|
|
|
Each version control system adds a pane to the \gui{Application Output}
|
|
panes within which it logs the commands it executes, prepended by a
|
|
timestamp and the relevant output.
|
|
|
|
\image qtcreator-vcs-pane.png
|
|
|
|
|
|
\section2 Adding Files
|
|
|
|
When you create a new file or a new project, the wizard displays a page
|
|
asking whether the files should be added to a version control system.
|
|
This happens when the parent directory or the project is already
|
|
under version control and the system supports the concept of adding files,
|
|
e.g., \bold{Perforce} and \bold{Subversion}. Alternatively, you can
|
|
add files later by using the version control tool menus.
|
|
|
|
With \bold{git}, there is no concept of adding files. Instead, all modified
|
|
files must be \e{staged} for a commit.
|
|
|
|
|
|
\section2 Viewing Diff Output
|
|
|
|
All version control systems provide menu options to \e{diff} the current
|
|
file or project: to compare it with the latest version stored in the
|
|
repository and to display the differences. In Qt Creator, a diff is
|
|
displayed in a read-only editor. If the file is accessible, you can
|
|
double-click on a selected diff chunk and Qt Creator opens an editor
|
|
displaying the file, scrolled to the line in question.
|
|
|
|
\image qtcreator-vcs-diff.png
|
|
|
|
|
|
\section2 Annotating Files
|
|
|
|
Annotation views are obtained by selecting \gui{Annotate} or \gui{Blame}.
|
|
This displays the lines of the file prepended by the change identifier
|
|
they originate from. Clicking on the change identifier shows a detailed
|
|
description of the file.
|
|
|
|
To show the annotation of a previous version in the \gui Annotate or
|
|
\gui Blame view, right-click on the version in the code. This option
|
|
allows you to navigate through the history of the file and obtain the
|
|
previous version of the code. This option also works for \gui git/hg
|
|
using SHA.
|
|
|
|
The file log view for a single file has \gui Annotate in
|
|
the context menu of the version mentioned in the log, the user can
|
|
right-click a line to open a context menu which contains
|
|
\gui{Annotate Previous}.
|
|
|
|
To set up a VCS repository for new projects, select \gui File >
|
|
\gui{New File or Project...}. It enables you to initialize a
|
|
repository for VCS that supports \gui git/hg
|
|
|
|
|
|
\section2 Committing Changes
|
|
|
|
Once you have finished making changes, you can submit them to the version
|
|
control system by choosing \gui{Commit} or \gui{Submit}. Qt Creator
|
|
displays a commit page containing a text editor, where you can enter your
|
|
commit message, and a checkable list of modified files to be included.
|
|
When you are done, click on \gui{Commit} to start committing. In addition,
|
|
there is a \gui{Diff Selected Files} button that brings up a diff view of the
|
|
files selected in the file list. Since the commit page is just another
|
|
editor, you can go back to it by closing the diff view. Alternatively, you
|
|
can view it from the editor combo box showing the \gui{Opened files}.
|
|
|
|
\image qtcreator-vcs-commit.png
|
|
|
|
|
|
\section2 Viewing Versioning History and Change Details
|
|
|
|
The versioning history of a file is displayed by selecting
|
|
\gui{Log} (for \bold{git}) or \gui{Filelog} (for \bold{Perforce} and
|
|
\bold{Subversion}). Typically, the log output contains the
|
|
date, the commit message, and a change or revision identifier.
|
|
Click on the identifier to display a description of the change including the diff.
|
|
|
|
\image qtcreator-vcs-log.png
|
|
\image qtcreator-vcs-describe.png
|
|
|
|
|
|
\section2 Using git-specific Menu Entries
|
|
|
|
The git sub-menu contains additional entries:
|
|
|
|
\table
|
|
\row
|
|
\i \gui{Stash}
|
|
\i Stash local changes prior to executing a \bold{pull}.
|
|
\row
|
|
\i \gui{Pull}
|
|
\i Pull changes from the remote repository. If there are locally
|
|
modified files, you are prompted to stash those changes.
|
|
\row
|
|
\i \gui{Branches...}
|
|
\i Displays the branch dialog showing the local branches at the
|
|
top and remote branches at the bottom. To switch to the local
|
|
branch, double-click on it. Double-clicking on a remote
|
|
branch first creates a local branch with the same name that
|
|
tracks the remote branch, and then switches to it.
|
|
|
|
\image qtcreator-vcs-gitbranch.png
|
|
\endtable
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-editor-refactoring.html
|
|
\page creator-editor-locator.html
|
|
\nextpage creator-project-managing.html
|
|
|
|
\title Searching With the Locator
|
|
|
|
The locator provides one of the easiest ways in Qt Creator to browse
|
|
through projects, files, classes, methods, documentation and file systems.
|
|
You can find the locator in the bottom left of the Qt Creator window.
|
|
|
|
To activate the locator, press \key Ctrl+K (\key Cmd+K on Mac OS
|
|
X) or select \gui Tools > \gui Locate....
|
|
|
|
\image qtcreator-locator.png
|
|
|
|
To edit the currently open project's main.cpp file using the locator:
|
|
\list 1
|
|
\o Activate the locator by pressing \key Ctrl+K.
|
|
\o Enter \c{main.cpp}.
|
|
|
|
\image qtcreator-locator-open.png
|
|
\o Press \key Return.
|
|
|
|
The main.cpp file opens in the editor.
|
|
\endlist
|
|
|
|
It is also possible to enter only a part of a search string.
|
|
As you type, the locator shows the occurrences of that string regardless
|
|
of where in the name of an item it appears.
|
|
|
|
To narrow down the search results, you can use the following wildcard
|
|
characters:
|
|
\list
|
|
\o To match any number of any or no characters, enter \tt \bold{*}.
|
|
\o To match a single instance of any character, enter \tt \bold{?}.
|
|
\endlist
|
|
|
|
\section1 Using the Locator Filters
|
|
|
|
The \gui Locator allows you to browse not only files, but any items
|
|
defined by \bold{locator filters}. By default, the locator contains
|
|
filters which locate:
|
|
\list
|
|
\o Any open document
|
|
\o Files anywhere on your file systems
|
|
\o Files belonging to your project, such as source, header resource,
|
|
and .ui files
|
|
\o Class and method definitions in your project or anywhere referenced
|
|
from your project
|
|
\o Help topics, including Qt documentation
|
|
\o Specific line in the document displayed in your editor
|
|
\endlist
|
|
|
|
To use a specific locator filter, type the assigned prefix followed by
|
|
\key Space. The prefix is usually a single character.
|
|
|
|
For example, to locate symbols matching
|
|
\l http://doc.trolltech.com/qdatastream.html}{QDataStream:
|
|
\list 1
|
|
\o Activate the locator.
|
|
\o Enter \tt{\bold{: QDataStream}} (: (colon) followed by a
|
|
\key Space and the symbol name (QDataStream)).
|
|
|
|
The locator lists the results.
|
|
|
|
\image qtcreator-navigate-popup.png
|
|
\endlist
|
|
|
|
By default the following filters are enabled and you do not need to use
|
|
their prefixes explicitly:
|
|
\list
|
|
\o Going to a line in the current file (l).
|
|
\o Going to an open file (o).
|
|
\o Going to a file in any open project (a).
|
|
\endlist
|
|
|
|
\section2 Using the Default Locator Filters
|
|
|
|
The following locator filters are available by default:
|
|
|
|
\table
|
|
\header
|
|
\o Function
|
|
\o Enter in locator
|
|
\o Example
|
|
\row
|
|
\o Go to a line in the current file.
|
|
\o \tt{\bold{l \e{Line number}}}
|
|
\o \image qtcreator-locator-line.png
|
|
\row
|
|
\o Go to a symbol definition.
|
|
\o \tt{\bold{: \e{Symbol name}}}
|
|
\o \image qtcreator-locator-symbols.png
|
|
\row
|
|
\o Go to a help topic.
|
|
\o \tt{\bold{? \e{Help topic}}}
|
|
\o \image qtcreator-locator-help.png
|
|
\row
|
|
\o Go to an open file.
|
|
\o \tt{\bold{o \e{File name}}}
|
|
\o \image qtcreator-locator-opendocs.png
|
|
\row
|
|
\o Go to a file in the file system (browse the file system).
|
|
\o \tt{\bold{f \e{File name}}}
|
|
\o \image qtcreator-locator-filesystem.png
|
|
\row
|
|
\o Go to a file in any project currently open.
|
|
\o \tt{\bold{a \e{File name}}}
|
|
\o \image qtcreator-locator-files.png
|
|
\row
|
|
\o Go to a file in the current project.
|
|
\o \tt{\bold{p \e{File name}}}
|
|
\o \image qtcreator-locator-current-project.png
|
|
\row
|
|
\o Go to a class definition.
|
|
\o \tt{\bold{c \e{Class name}}}
|
|
\o \image qtcreator-locator-classes.png
|
|
\row
|
|
\o Go to a method definition.
|
|
\o \tt{\bold{m \e{Method name}}}
|
|
\o \image qtcreator-locator-methods.png
|
|
\endtable
|
|
|
|
\section2 Creating Locator Filters
|
|
|
|
To quickly access files not directly mentioned in your project, you can
|
|
create your own locator filters. That way you can locate files in a
|
|
directory structure you have defined.
|
|
|
|
To create a locator filter:
|
|
\list 1
|
|
\o In the locator, click \inlineimage qtcreator-locator-magnify.png
|
|
and select \gui Configure....
|
|
|
|
\image qtcreator-locator-customize.png
|
|
|
|
\o In the \gui Options window click \gui Add.
|
|
\o In the \gui{Filter Configuration} dialog:
|
|
\list
|
|
\o Name your filter.
|
|
\o Select at least one directory. The locator searches directories
|
|
recursively.
|
|
\o Define the file pattern as a comma separated list. For example,
|
|
to search all .h and .cpp files, enter \tt \bold{*.h,*.cpp}
|
|
\o Specify the prefix string.
|
|
|
|
To show only results matching this filter, select
|
|
\gui{Limit to prefix}.
|
|
|
|
\image qtcreator-navigate-customfilter.png
|
|
\endlist
|
|
\o Click OK.
|
|
\endlist
|
|
|
|
\section3 Configuring the Locator Cache
|
|
|
|
The locator searches the files matching your file pattern in the
|
|
directories you have selected and caches that information. The cache for
|
|
all default filters is updated as you write your code. The filters you have
|
|
created Qt Creator by default updates once an hour.
|
|
|
|
To update the cached information manually, click
|
|
\inlineimage qtcreator-locator-magnify.png
|
|
and select \gui Refresh.
|
|
|
|
To set a new cache update time:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Locator.
|
|
\o In \gui{Refresh interval} define new time in minutes.
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-generic.html
|
|
\page creator-project-managing-sessions.html
|
|
\nextpage creator-developing-applications.html
|
|
|
|
\title Managing Sessions
|
|
|
|
In Qt Creator, a session is a collection of:
|
|
|
|
\list
|
|
\o Open projects with their dependencies
|
|
\o Open editors
|
|
\o Breakpoints and watches
|
|
\o Bookmarks
|
|
\endlist
|
|
|
|
When you launch Qt Creator, a list of existing sessions is displayed on the
|
|
\gui{Welcome screen}.
|
|
|
|
\image qtcreator-welcome-session.png
|
|
|
|
To switch between sessions, select the session from sessions listed in
|
|
\gui File > \gui Session. If you do not create or select a session,
|
|
Qt Creator always uses the default session.
|
|
|
|
To create a new session or remove existing sessions, select \gui File >
|
|
\gui Sessions > \gui{Session Manager}.
|
|
|
|
\image qtcreator-session-manager.png
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-developing-symbian.html
|
|
\page creator-debugging.html
|
|
\nextpage creator-version-control.html
|
|
|
|
\title Debugging
|
|
|
|
|
|
\section1 About Debugging with Qt Creator
|
|
|
|
Qt Creator does not have its own debugger. Instead, it provides a graphical
|
|
frontend to various debugger engines:
|
|
|
|
\table
|
|
\header
|
|
\o Platform
|
|
\o Compiler
|
|
\o Debugger Engine
|
|
\row
|
|
\o Linux, Unixes, Mac OS
|
|
\o gcc
|
|
\o GNU Symbolic Debugger (gdb)
|
|
\row
|
|
\o Windows/MinGW
|
|
\o gcc
|
|
\o GNU Symbolic Debugger (gdb)
|
|
\row
|
|
\o Windows
|
|
\o Microsoft Visual C++ Compiler
|
|
\o Debugging Tools for Windows/Microsoft Console Debugger (CDB)
|
|
\endtable
|
|
|
|
The frontend allows you to:
|
|
\list
|
|
\o Go through a program line-by-line or instruction-by-instruction.
|
|
\o Interrupt running programs.
|
|
\o Set breakpoints.
|
|
\o Examine the contents of the call stack, local and global variables, etc.
|
|
\endlist
|
|
|
|
Qt Creator displays the raw information provided by the engine
|
|
in a clear and concise manner. This simplifies the debugging process.
|
|
|
|
Qt Creator comes with generic IDE functionality: stack view, views for locals and
|
|
watchers, registers, etc. In addition, Qt Creator includes features to make
|
|
debugging Qt-based applications easy. The debugger frontend understands the
|
|
internal layout of several Qt classes such as QString, the QTL containers,
|
|
and most importantly QObject (and classes derived from it), as well as
|
|
most containers of the C++ Standard Library. Therefore, the debugger can
|
|
present their contents in a useful way.
|
|
|
|
|
|
\section1 Debugger Engine Installation Notes
|
|
|
|
\table
|
|
\header
|
|
\o Debugger engine
|
|
\o Notes
|
|
\row
|
|
\o Gdb
|
|
\o Requires gdb version 6.8 on Linux. On Mac OS X, please install the latest available Xcode
|
|
available for your OS version.
|
|
\row
|
|
\o Debugging tools for Windows
|
|
\o Using this engine requires you to install the
|
|
\e{Debugging tools for Windows}
|
|
\l{http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx}{32-bit}
|
|
or
|
|
\l{http://www.microsoft.com/whdc/devtools/debugging/install64bit.Mspx}{64-bit}
|
|
package (Version 6.11.1.404 for the 32-bit or the 64-bit version of Qt Creator, respectively),
|
|
which is freely available for download from the
|
|
\l{http://msdn.microsoft.com/en-us/default.aspx}
|
|
{Microsoft Developer Network}.
|
|
|
|
The pre-built \e{Qt SDK for Windows} makes use
|
|
of the library if it is present on the system. When building Qt
|
|
Creator using the Microsoft Visual C++ Compiler, the
|
|
\c{"%ProgramFiles%\Debugging Tools for Windows"} path is
|
|
checked to ensure that all required header files are there.
|
|
\row
|
|
\o Debugging tools for Mac OS X
|
|
\o The Qt binary distribution contains both debug and release
|
|
variants of the libraries. But you have to explicitly tell the
|
|
runtime linker that you want to use the debug libraries even if
|
|
your application is compiled as debug as release is the default
|
|
library.
|
|
|
|
If you use a qmake based project in Qt Creator, you can set a
|
|
flag in your run configuration, in Projects mode. In the run
|
|
configuration, select \gui{Use debug version of frameworks}.
|
|
|
|
For more detailed information about debugging on the Mac, refer:
|
|
\l http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html
|
|
|
|
\note The Mac OS X Snow Leopard (10.6) has a bug, that can be worked
|
|
around as described in the link provided below:
|
|
\l http://bugreports.qt.nokia.com/browse/QTBUG-4962.
|
|
|
|
\endtable
|
|
|
|
|
|
\section1 Interaction with the Debugger
|
|
|
|
In \gui Debug mode, several dock widgets are used to interact with the
|
|
program you are debugging. The frequently used dock widgets are visible by
|
|
default; the rarely used ones are hidden. To change the default settings,
|
|
select \gui Debug and then select \gui View.
|
|
|
|
\image qtcreator-debug-view.png
|
|
|
|
Here, you can lock or unlock the location of your dock widgets as well as
|
|
display or hide them. The position of your dock widgets is saved for future
|
|
sessions.
|
|
|
|
|
|
\section2 Usage of the Debugger
|
|
|
|
To start a program under the debugger's control, select the \gui{Debug}
|
|
menu and \gui{Start Debugging}, or press \key{F5}. Qt Creator
|
|
checks whether the compiled program is up-to-date, rebuilding it if
|
|
necessary. The debugger then takes over and starts the program.
|
|
|
|
\note Starting a program in the debugger can take a considerable amount of
|
|
time, typically in the range of several seconds to minutes if complex
|
|
features (like QtWebKit) are used.
|
|
|
|
Once the program starts running, it behaves and performs as usual.
|
|
The user can interrupt a running program by selecting
|
|
\gui {Interrupt} from the \gui{Debug} menu. The program is automatically
|
|
interrupted as soon as a breakpoint is hit.
|
|
|
|
Once the program stops, Qt Creator:
|
|
|
|
\list
|
|
\o Retrieves data representing the call stack at the program's current
|
|
position.
|
|
\o Retrieves the contents of local variables.
|
|
\o Examines \gui Watchers.
|
|
\o Updates the \gui Registers, \gui Modules, and \gui Disassembler
|
|
views.
|
|
\endlist
|
|
|
|
|
|
You can use the debugger views to examine the data in more detail.
|
|
|
|
To finish debugging, press \key{Shift+F5}. A line of code can be executed
|
|
as a whole with \key F10; to step into a function or a sub-function, use
|
|
\key F11. Alternatively, you can continue running the program with \key F5.
|
|
It is also possible to continue executing the program until the current
|
|
function completes or jump to an arbitrary position in the current
|
|
function.
|
|
|
|
|
|
\section2 Breakpoints
|
|
|
|
Breakpoints are shown in the \gui{Breakpoints} view which is enabled
|
|
by default. This view is also accessible when the debugger and the program
|
|
being debugged is not running.
|
|
|
|
A breakpoint represents a position or sets of positions in the code that,
|
|
when executed, interrupts the program being debugged and passes the
|
|
control to the user. The user is then free to examine the state of the
|
|
interrupted program, or continue execution either line-by-line or continuously.
|
|
|
|
Typically, breakpoints are associated with a source code file and line, or
|
|
the start of a function -- both are allowed in Qt Creator.
|
|
|
|
Also, the interruption of a program by a breakpoint can be restricted with
|
|
certain conditions.
|
|
|
|
You can set a breakpoint:
|
|
|
|
\list
|
|
\o At a particular line you want the program to stop -- click on the
|
|
left margin or press \key F9 (\key F8 for Mac OS X).
|
|
\o At a function that you want the program to interrupt -- enter the
|
|
function's name in \gui{Set Breakpoint at Function...} located in the
|
|
context menu of the breakpoints view.
|
|
\endlist
|
|
|
|
\note
|
|
|
|
You can remove a breakpoint:
|
|
|
|
\list
|
|
\o By clicking on the breakpoint marker in the text editor.
|
|
\o By selecting the breakpoint in the breakpoint view and pressing
|
|
\key{Delete}.
|
|
\o By selecting \gui{Delete Breakpoint} from the breakpoint's context
|
|
menu in the \gui Breakpoints view.
|
|
\endlist
|
|
|
|
Breakpoints can be set and deleted before the program has actually started
|
|
running or while it is running under the debugger's control. Also,
|
|
breakpoints are saved together with a session.
|
|
|
|
|
|
\section2 Stack
|
|
|
|
When the program being debugged is interrupted, Qt Creator displays the
|
|
nested function calls leading to the current position as a \e call stack
|
|
trace. This stack trace is built up from \e{call stack frames}, each
|
|
representing a particular function. For each function, Qt Creator tries
|
|
to retrieve the file name and line number of the corresponding source
|
|
file. This data is shown in the \gui Stack view.
|
|
|
|
\image qtcreator-debug-stack.png
|
|
|
|
Since the call stack leading to the current position may originate or go
|
|
through code for which no debug information is available, not all stack
|
|
frames have corresponding source locations. These frames are
|
|
grayed out in the \gui Stack view.
|
|
|
|
If you click on a frame with a known source location, the text editor
|
|
jumps to the corresponding location and updates the \gui{Locals and Watchers}
|
|
view, making it seem like the program was interrupted before entering the
|
|
function.
|
|
|
|
|
|
\section2 Threads
|
|
|
|
If a multi-threaded program is interrupted, the \gui Thread view or the
|
|
combobox named \gui Thread in the debugger's status bar can be used to
|
|
switch from one thread to another. The \gui Stack view adjusts itself
|
|
accordingly.
|
|
|
|
|
|
\section2 Modules View and Source Files View
|
|
|
|
These views display the debugger's idea of the components of the
|
|
application. By default, both views are hidden.
|
|
|
|
|
|
\section2 Disassembler View and Registers View
|
|
|
|
By default, both \gui Disassembler and \gui Registers view are hidden.
|
|
The \gui Disassembler view displays disassembled code for the current
|
|
function; the \gui Registers view displays the current state of the CPU's
|
|
registers. Both views are useful for low-level commands such as
|
|
\gui{Step Single Instruction} and \gui{Step Over Single Instruction}.
|
|
|
|
\section2 Locals and Watchers
|
|
|
|
Whenever a program stops under the control of the debugger, it retrieves
|
|
information about the topmost stack frame and displays it in the
|
|
\gui{Locals and Watchers} view. This typically includes information about
|
|
parameters of the function in that frame as well as the local variables.
|
|
|
|
Compound variables of struct or class type are displayed as
|
|
"expandable" in the view. Click on the "+" to expand the entry and show
|
|
all members. Together with the display of value and type, the user can
|
|
examine and traverse the low-level layout of an object's data.
|
|
|
|
|
|
\table
|
|
\row
|
|
\i \bold{Note:}
|
|
|
|
\row
|
|
\i Gdb, and therefore Qt Creator's debugger works for optimized
|
|
builds on Linux and Mac OS X. However, optimization may lead
|
|
to re-ordering of instructions or sometimes even complete
|
|
removal of some local variables. In this case, the
|
|
\gui{Locals and Watchers} view may show unexpected data.
|
|
|
|
\row
|
|
\i The debug information provided by gcc does not include enough
|
|
information about the time when a variable is initialized.
|
|
Therefore, Qt Creator can not tell whether the contents of a
|
|
local variable contains "real data", or "initial noise". If a
|
|
QObject appears uninitialized, its value is reported as
|
|
"out of scope". However, not all uninitialized objects can be
|
|
recognized as such.
|
|
\endtable
|
|
|
|
|
|
The \gui{Locals and Watchers} view also provides access to the most
|
|
powerful feature of the debugger: comprehensive display of data belonging
|
|
to Qt's basic objects. To enable this feature, check \gui{Use
|
|
debugging helper} checkbox from \gui Tools > \gui Options... >
|
|
\gui Debugger > \gui{Debugging Helper}. The \gui{Locals and Watchers} view
|
|
is re-organized to provide a high-level view of the objects. For example,
|
|
in case of QObject, instead of displaying a pointer to some private data
|
|
structure, you see a list of children, signals and slots.
|
|
|
|
Similarly, instead of displaying many pointers and integers, Qt Creator's
|
|
debugger displays the contents of a QHash or QMap in an orderly manner.
|
|
Also, the debugger displays access data for QFileInfo and provides
|
|
access to the "real" contents of QVariant.
|
|
|
|
The \gui{Locals and Watchers} view can be used to change the contents of
|
|
variables of simple data types such as \c int or \c float when the program
|
|
is interrupted. To do so, click on the \gui Value column, modify the value
|
|
with the inplace editor, and hit \key Enter (or \key Return).
|
|
|
|
\note The set of watched items is saved in your session.
|
|
|
|
|
|
\section1 Walkthrough for the Debugger Frontend
|
|
|
|
In our \l{Writing a Simple Program}{TextFinder} example, we
|
|
read a text file into QString and then display it with QTextEdit.
|
|
Suppose you want to look at this QString, \c{line}, and see what
|
|
data it actually stores. Follow the steps described below to place a
|
|
breakpoint and view the QString object's data.
|
|
|
|
\table
|
|
\row
|
|
\i \inlineimage qtcreator-setting-breakpoint1.png
|
|
\i \bold{Setting a Breakpoint}
|
|
|
|
\list 1
|
|
\o Click in between the line number and the window border on the line
|
|
where we invoke \l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()}
|
|
to set a breakpoint.
|
|
\o Select \gui{Start Debugging} from the \gui{Debug} menu or press \key{F5}.
|
|
\endlist
|
|
|
|
\row
|
|
\i \inlineimage qtcreator-setting-breakpoint2.png
|
|
\i \bold{Viewing and removing breakpoints}
|
|
|
|
Breakpoints are visible in the \gui{Breakpoints} view in
|
|
\gui{Debug} mode. To remove a breakpoint, right-click on
|
|
it and select \gui{Delete breakpoint} from the context menu.
|
|
|
|
\row
|
|
\i \inlineimage qtcreator-watcher.png
|
|
\i \bold{Viewing Locals and Watchers}
|
|
|
|
To view the contents of \c{line}, go to the \gui{Locals and
|
|
Watchers} view.
|
|
|
|
\endtable
|
|
|
|
Suppose we modify our \c{on_findButton_clicked()} function to move back to
|
|
the start of the document and continue searching once the cursor hits the
|
|
end of the document. Adding this functionality can be done with the code
|
|
snippet below:
|
|
|
|
\code
|
|
void TextFinder::on_findButton_clicked()
|
|
{
|
|
QString searchString = ui->lineEdit->text();
|
|
|
|
QTextDocument *document = ui->textEdit->document();
|
|
QTextCursor cursor = ui->textEdit->textCursor();
|
|
cursor = document->find(searchString, cursor,
|
|
QTextDocument::FindWholeWords);
|
|
ui->textEdit->setTextCursor(cursor);
|
|
|
|
bool found = cursor.isNull();
|
|
|
|
if (!found && previouslyFound) {
|
|
int ret = QMessageBox::question(this, tr("End of Document"),
|
|
tr("I have reached the end of the document. Would you like "
|
|
"me to start searching from the beginning of the document?"),
|
|
QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
|
|
|
|
if (ret == QMessageBox::Yes) {
|
|
cursor = document->find(searchString,
|
|
QTextDocument::FindWholeWords);
|
|
ui->textEdit->setTextCursor(cursor);
|
|
} else
|
|
return;
|
|
}
|
|
previouslyFound = found;
|
|
}
|
|
\endcode
|
|
|
|
However, if you compile and run this code, the application does not work
|
|
correctly due to a logic error. To locate this logic error, step
|
|
through the code using the following buttons:
|
|
|
|
\image qtcreator-debugging-buttons.png
|
|
|
|
\section1 Setting the Symbol Server
|
|
|
|
To obtain operating system libraries for debugging Windows applications,
|
|
you have to add the Symbol Server:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options > \gui Debugger > \gui Cdb
|
|
\o Click \inlineimage qtcreator-serverbutton.png
|
|
located next to the \gui{Insert...} button of the Symbol paths
|
|
field and select \gui{Symbol Server...}
|
|
\o Select a directory where you want to store the cached information
|
|
and click \gui OK.
|
|
\endlist
|
|
|
|
\section1 Debugging Helper Library with C++
|
|
|
|
While debugging, Qt Creator dynamically loads a helper library into your
|
|
program. This helper library enables Qt Creator to pretty print Qt and STL
|
|
types. The Qt SDK package already contains a prebuilt debugging helper
|
|
library. To create an own debugging helper library, select \gui{Options}
|
|
from the \gui{Tools} menu, and go to the \gui{Qt4 > Qt Versions} pane. As
|
|
the internal data structures of Qt can change between versions, the debugging
|
|
helper library is built for each Qt version.
|
|
|
|
|
|
\section1 Debugging Helper Library with Python
|
|
|
|
Using a gdb version that has Python scripting available it is possible to
|
|
use Debugging Helpers also for user defined types. All that is needed is
|
|
to define one Python function per user defined type in .gdbinit.
|
|
|
|
The function's name has to be qdump__NS__Foo where NS::Foo is the class
|
|
or class template to be examined. Nested namespaces are possible.
|
|
|
|
Qt Creator's debugger integration will call this function whenever it
|
|
wants to display an object of this type. The function gets passed two
|
|
parameters, 'd' of type 'Dumper', and 'item' of type 'Item'. The function
|
|
itself has to feed the Dumper object with certain information which is
|
|
used to build up the object and its children's display in the
|
|
Locals-and-Watchers view.
|
|
|
|
|
|
Example:
|
|
|
|
\code
|
|
def qdump__QVector(d, item):
|
|
d_ptr = item.value["d"]
|
|
p_ptr = item.value["p"]
|
|
alloc = d_ptr["alloc"]
|
|
size = d_ptr["size"]
|
|
|
|
check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 1000)
|
|
check(d_ptr["ref"]["_q_value"] > 0)
|
|
|
|
innerType = item.value.type.template_argument(0)
|
|
d.putItemCount(size)
|
|
d.putNumChild(size)
|
|
if d.isExpanded(item):
|
|
p = gdb.Value(p_ptr["array"]).cast(innerType.pointer())
|
|
d.beginChildren([size, 2000], innerType)
|
|
for i in d.childRange():
|
|
d.safePutItem(Item(p.dereference(), item.iname, i))
|
|
p += 1
|
|
d.endChildren()
|
|
\endcode
|
|
|
|
\section2
|
|
|
|
The 'Item' Python class is a thin wrapper around values corresponding to one
|
|
line in the Locals-and-Watchers view. Its members are the following:
|
|
|
|
\list
|
|
|
|
\o \gui{__init__(self, value, parentiname, iname, name = None)} - A
|
|
constructor. The object's internal name is created by concatenating
|
|
\a parentiname and \a iname. If \c None is passed as \a name, a
|
|
serial number is used.
|
|
|
|
\o \gui{value} - An object of type gdb.Value representing the value to
|
|
be displayed.
|
|
|
|
\o \gui{iname} - The internal name of the object, i.e. a dot-separated
|
|
list of identifiers, corresponding to the position of the object's
|
|
representation in the view.
|
|
|
|
\o \gui{name} - An optional name. If given, it will be used in the
|
|
\gui{name} column of the view. If not, a simple number in brackets
|
|
will be used instead.
|
|
|
|
\endlist
|
|
|
|
|
|
\section2
|
|
|
|
For each line in the Locals and Watcher view, a string like the following
|
|
needs to be created and channeled to Creator's debugger plugin.
|
|
\code
|
|
"{iname='some internal name',
|
|
addr='object address in memory',
|
|
name='contents of the name column',
|
|
value='contents of the value column',
|
|
type='contents of the type column',
|
|
numchild='number of children', // zero/nonzero is sufficient
|
|
childtype='default type of children', // optional
|
|
childnumchild='default number of grandchildren', // optional
|
|
children=[ // only needed if item is expanded in view
|
|
{iname='internal name of first child',
|
|
... },
|
|
{iname='internal name of second child',
|
|
... },
|
|
...
|
|
]}"
|
|
\endcode
|
|
|
|
While in theory, this string can be build up entirely manually, it is
|
|
easier to employ the 'Dumper' Python class for that purpose. It contains
|
|
a complete framework to take care of the 'iname' and 'addr' fields,
|
|
to handle children of simple types, references,
|
|
pointers, enums, known and unknown structs as well as some
|
|
convenience methods to handle common situations.
|
|
|
|
The 'Dumper' members are the following:
|
|
|
|
\list
|
|
|
|
\o \gui{__init__(self)} - Initializes the output to an empty string and
|
|
empties the child stack.
|
|
|
|
\o \gui{put(self, value)} - Low level method to directly append to the
|
|
output string.
|
|
|
|
\o \gui{putCommaIfNeeded(self)} - Appends a comma if the current output
|
|
ends in '}', '"' or ']' .
|
|
|
|
\o \gui{putField(self, name, value)} - Appends a comma if needed, and a
|
|
name='value' field.
|
|
|
|
\o \gui{beginHash(self)} - Appends a comma if needed and a '{', marking
|
|
the begin of a set of fields.
|
|
|
|
\o \gui{endHash(self)} - Appends a '}', marking the end of a set of
|
|
fields.
|
|
|
|
\o \gui{beginItem(self, name)} - Starts writing a field by writing \c {name='}.
|
|
|
|
\o \gui{endItem(self)} - Ends writing a field by writing \c {'}.
|
|
|
|
\o \gui{beginChildren(self, numChild_ = 1, childType_ = None, childNumChild_ = None)}
|
|
- Starts writing a list of \a numChild children, with type
|
|
\a childType_ and \a childNumChild_ grandchildren each. If \a numChild_
|
|
is a list of two integers, the first one specifies the actual number
|
|
of children and the second the maximum number of children to print.
|
|
|
|
\o \gui{endChildren(self)} - Ends writing a list of children.
|
|
|
|
\o \gui{childRange(self)} - Return the range of children specified in
|
|
\c beginChildren.
|
|
|
|
\o \gui{putItemCount(self, count)} - Appends a field \c {value='<%d items'}
|
|
to the output.
|
|
|
|
\o \gui{putEllipsis(self)} - Appends fields
|
|
\c {'{name="<incomplete>",value="",type="",numchild="0"}'}. This is
|
|
automatically done by \c endChildren if the number of children to
|
|
print is smaller than the number of actual children.
|
|
|
|
\o \gui{putName(self, name)} - Appends a \c {name='...'} field.
|
|
|
|
\o \gui{putType(self, type)} - Appends a field \c {type='...'} unless the
|
|
\a type coincides with the parent's default child type.
|
|
|
|
\o \gui{putNumChild(self, numchild)} - Appends a field \c {numchild='...'}
|
|
unless the \a numchild coincides with the parent's default child numchild
|
|
value.
|
|
|
|
\o \gui{putValue(self, value, encoding = None)} - Append a file \c {value='...'},
|
|
optionally followed by a field \c {valueencoding='...'}. The \a value
|
|
needs to be convertible to a string entirely consisting of
|
|
alphanumerical values. The \a encoding parameter can be used to
|
|
specify the encoding in case the real value had to be encoded in some
|
|
way to meet the alphanumerical-only requirement.
|
|
Currently the following encodings are supported:
|
|
|
|
\list
|
|
\o 0: unencoded 8 bit data, interpreted as Latin1.
|
|
|
|
\o 1: base64 encoded 8 bit data, used for QByteArray,
|
|
double quotes will be added.
|
|
|
|
\o 2: base64 encoded 16 bit data, used for QString,
|
|
double quotes will be added.
|
|
|
|
\o 3: base64 encoded 32 bit data,
|
|
double quotes will be added.
|
|
|
|
\o 4: base64 encoded 16 bit data, without quotes (see 2)
|
|
|
|
\o 5: base64 encoded 8 bit data, without quotes (see 1)
|
|
|
|
\o 6: %02x encoded 8 bit data (as with \c QByteArray::toHex),
|
|
double quotes will be added.
|
|
|
|
\o 7: %04x encoded 16 bit data (as with \c QByteArray::toHex),
|
|
double quotes will be added.
|
|
\endlist
|
|
|
|
\o \gui{putStringValue(self, value)} - Encodes a QString and calls
|
|
\c putValue with the correct \a encoding setting.
|
|
|
|
\o \gui{putByteArrayValue(self, value)} - Encodes a QByteArray and calls
|
|
\c putValue with the corrent \a encoding setting.
|
|
|
|
\o \gui{isExpanded(self, item)} - Checks whether the item with the
|
|
internal name \c item.iname is expanded in the view.
|
|
|
|
\o \gui{isExpandedIName(self, iname)} - Checks whether the item with the
|
|
internal name \c iname is expanded in the view.
|
|
|
|
\o \gui{putIntItem(self, name, value)} - Equivalent to
|
|
\code
|
|
self.beginHash()
|
|
self.putName(name)
|
|
self.putValue(value)
|
|
self.putType("int")
|
|
self.putNumChild(0)
|
|
self.endHash()
|
|
\endcode
|
|
|
|
\o \gui{putBoolItem(self, name, value)} - Equivalent to
|
|
\code
|
|
self.beginHash()
|
|
self.putName(name)
|
|
self.putValue(value)
|
|
self.putType("bool")
|
|
self.putNumChild(0)
|
|
self.endHash()
|
|
\endcode
|
|
|
|
\o \gui{pushOutput(self)} - Moves the output string to a safe location
|
|
from with it will be sent to the frontend even if further operations
|
|
raise an exception.
|
|
|
|
\o \gui{putCallItem(self, name, item, func)} -
|
|
Uses gdb to call the function \a func on the value specified by
|
|
\a {item.value} and output the resulting item. This function is
|
|
not available when debugging core dumps and it is not available
|
|
on the Symbian platform due to restrictions imposed by AppTRK.
|
|
|
|
\o \gui{putItemHelper(self, item)} - The "master function", handling
|
|
basic types, references, pointers and enums directly, iterates
|
|
over base classes and class members of compound types and calls
|
|
\c qdump__* functions whenever appropriate.
|
|
|
|
\o \gui{putItem(self, item)} - Equivalent to
|
|
self.beginHash()
|
|
self.putItemHelper(item)
|
|
self.endHash()
|
|
|
|
\o \gui{safePutItemHelper(self, item)} - Calls \c putItemHelper(self, item).
|
|
If an exception is raised, catch it, and replace all output produced by
|
|
\c putItemHelper with the output of \code
|
|
self.putName(item.name)
|
|
self.putValue("<invalid>")
|
|
self.putType(str(item.value.type))
|
|
self.putNumChild(0)
|
|
self.beginChildren()
|
|
self.endChildren() \endcode
|
|
|
|
|
|
\o \gui{safePutItem(self, item)} - Equivalent to
|
|
self.beginHash()
|
|
self.safePutItemHelper(item)
|
|
self.endHash()
|
|
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-qmake.html
|
|
\page creator-project-cmake.html
|
|
\nextpage creator-project-generic.html
|
|
|
|
\title Setting Up a CMake Project
|
|
|
|
Since Qt Creator 1.1, support for \c CMake project files is available.
|
|
Qt Creator 1.3 supports the Microsoft Toolchain if the CMake version
|
|
is at least 2.8.
|
|
|
|
You can set the path for the \c CMake executable in \gui{Tools} >
|
|
\gui{Options...} > \gui{CMake} > \gui{CMake}.
|
|
|
|
\image qtcreator-cmakeexecutable.png
|
|
|
|
\note Before you open a \c CMake project it is necessary to modify the
|
|
PATH environment variable to include the bin folders of \c mingw and
|
|
Qt Creator in the SDK.
|
|
|
|
For instance, if you have the Qt Creator SDK installed in your C drive,
|
|
use the following command to set the environment variables in
|
|
the command line prompt:
|
|
\code
|
|
set PATH=C:\qtsdk\mingw\bin;C:\qtsdk\qt\bin;
|
|
\endcode
|
|
Then start Qt Creator by typing:
|
|
\code
|
|
C:\qtsdk\bin\qtcreator.exe
|
|
\endcode
|
|
|
|
\section1 Opening CMake Projects
|
|
|
|
To open a \c CMake project:
|
|
\list 1
|
|
\o Select \gui Open from the \gui File menu.
|
|
\o Select the \c{CMakeLists.txt} file from your \c CMake project.
|
|
\endlist
|
|
|
|
A wizard guides you with the rest of the process.
|
|
|
|
\note If the \c CMake project does not have an in-place build, Qt Creator
|
|
lets you specify the directory in which the project is built
|
|
(\l{glossary-shadow-build}{shadow build}).
|
|
|
|
\image qtcreator-cmake-import-wizard1.png
|
|
|
|
The screenshot below shows how you can specify command line arguments to
|
|
\c CMake for your project.
|
|
|
|
\image qtcreator-cmake-import-wizard2.png
|
|
|
|
Normally, there is no need to pass any command line arguments for projects
|
|
that are already built, as \c CMake caches that information.
|
|
|
|
|
|
\section1 Building CMake Projects
|
|
|
|
Qt Creator builds \c CMake projects by running \c make, \c mingw32-make, or
|
|
\c nmake depending on your platform. The build errors and warnings are
|
|
parsed and displayed in the \gui{Build Issues} output pane.
|
|
|
|
By default, Qt Creator builds the \bold{all} target. You can specify which
|
|
targets to build in \gui{Project} mode, under \gui{Build Settings}.
|
|
|
|
\image qtcreator-cmake-build-settings.png
|
|
|
|
Qt Creator supports multiple build configurations. The build
|
|
directory can also be modified after the initial import.
|
|
|
|
\section1 Running CMake Projects
|
|
Qt Creator automatically adds \gui{Run Configurations} for all targets
|
|
specified in the \c CMake project file.
|
|
|
|
Known issues for the current version can be found
|
|
\l{Known Issues of version 1.3.82}{here}.
|
|
|
|
|
|
\section1 Adding External Libraries to a CMake Project
|
|
|
|
Through external libraries Qt Creator can support code completion and
|
|
syntax highlighting as if they were part of the current project or the Qt
|
|
library.
|
|
|
|
Qt Creator detects the external libraries using the \c FIND_PACKAGE()
|
|
macro. Some libraries come with the CMake installation. You can find those
|
|
in the \bold{Modules} directory of your CMake installation.
|
|
|
|
\note If you provide your own libraries, you also need to provide your own
|
|
\c FindFoo.cmake file. For more information, see
|
|
\l{http://vtk.org/Wiki/CMake_FAQ#Writing_FindXXX.cmake_files}{CMake FAQ}.
|
|
|
|
Syntax completion and highlighting work once your project successfully
|
|
builds and links against the external library.
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-cmake.html
|
|
\page creator-project-generic.html
|
|
\nextpage creator-project-managing-sessions.html
|
|
|
|
\title Setting Up a Generic Project
|
|
|
|
Qt Creator supports generic projects, so you can import existing projects
|
|
that do not use qmake or CMake and Qt Creator ignores your build system
|
|
|
|
This allows you to use Qt Creator as a code editor. You can change the
|
|
way your project is built by modifying the \c make command in the
|
|
\gui Projects mode under \gui{Build Settings}.
|
|
|
|
When you import a project, Qt Creator creates the following files that
|
|
allow you to specify which files belong to your project and which include
|
|
directories or defines you want to pass to your compile:
|
|
.files, .includes, and .config.
|
|
|
|
|
|
\section1 Importing a Generic Project
|
|
|
|
To import an existing generic project:
|
|
\list 1
|
|
\o Select \gui File > \gui{New File or Project...} > \gui Projects >
|
|
\gui{Import Existing Project}.
|
|
\o In \gui{Generic Project}, enter the project name
|
|
and select the project file you want to import.
|
|
|
|
Qt Creator automatically generates the following files in the
|
|
project directory:
|
|
\list
|
|
\o \l{Specifying Files}{.files}
|
|
\o \l{Specifying Include Paths}{.includes}
|
|
\o \l{Specifying Defines}{.config}
|
|
\o .creator
|
|
\endlist
|
|
\endlist
|
|
|
|
When the project is successfully imported, Qt Creator creates its project
|
|
tree in the sidebar.
|
|
|
|
After importing a generic project into Qt Creator, open it by selecting the
|
|
.creator file.
|
|
|
|
|
|
\section1 Working with Generic Project Files
|
|
|
|
For a generic project, you have to manually specify which files belong to
|
|
your project and which include directories or defines you want to pass to
|
|
your compiler.
|
|
|
|
|
|
\section1 Specifying Files
|
|
|
|
The list of files for a generic project is specified in the \c .files
|
|
file. When you first create a generic project, Qt Creator adds any
|
|
files it recognizes to your project.
|
|
|
|
To add or remove files, edit the \c .files file in Qt Creator.
|
|
Qt Creator recreates your project tree when you save the \c{.files file}.
|
|
Alternatively, you can add and remove files using the context menu in the
|
|
project tree.
|
|
|
|
If you frequently need to update the \c .files file, you can do it
|
|
efficiently by using a script that updates the file for you. If the file
|
|
is modified externally, you have to restart Qt Creator for the changes to
|
|
take effect.
|
|
|
|
To update the \c .files on the \gui git repository use the following
|
|
script:
|
|
\code
|
|
git ls-files *.cpp > MyProject.files
|
|
\endcode
|
|
|
|
\section1 Specifying Include Paths
|
|
|
|
The include paths are specified in the \c{.includes} file, one include
|
|
path per line. The paths can be either absolute or relative to the
|
|
\c{.includes} file.
|
|
|
|
\section1 Specifying Defines
|
|
|
|
The defines are specified in the \c .config file. This is a regular C++
|
|
file, prepended to all your source files when they are parsed. However,
|
|
use it only to add lines like the following:
|
|
|
|
\code
|
|
#define NAME value
|
|
\endcode
|
|
|
|
|
|
\section1 Creating a Run Configuration
|
|
|
|
Qt Creator cannot automatically determine which executable to run.
|
|
|
|
To define the executable file to run, in the \gui Projects mode under
|
|
\gui{Run Settings}:
|
|
\list 1
|
|
\o Click \gui Add and select \gui{Custom Executable}.
|
|
\o Define the configuration name, the location of the executable, any
|
|
additional arguments you want to and the working directory.
|
|
\endlist
|
|
|
|
|
|
\section1 Adding External Libraries to a Generic Project
|
|
|
|
Through external libraries Qt Creator can support code completion and
|
|
syntax highlighting as if they were part of the current project or the Qt
|
|
library.
|
|
|
|
If you import a project using the \gui{Import Existing Project}
|
|
function, Qt Creator creates a file called <projectname>.includes in your
|
|
project directory. This file contains all project subdirectories for which
|
|
Qt Creator found relevant headers. Add your include paths here.
|
|
|
|
Note that in \gui Projects mode of a generic project, Qt Creator does not
|
|
modify any project settings prior to the build.
|
|
|
|
Syntax completion and highlighting work once your project successfully
|
|
builds and links against the external library.
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-project-managing-sessions.html
|
|
\page creator-developing-applications.html
|
|
\nextpage creator-visual-editor.html
|
|
|
|
\title Developing Mobile Applications
|
|
|
|
Use \QMLD to design and implement application UI.
|
|
|
|
Set up the development environment for your chosen mobile device
|
|
platform, Maemo or Symbian. Then specify build and run settings
|
|
for the environment in Qt Creator to build and run applications
|
|
from Qt Creator.
|
|
|
|
*/
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
\previouspage creator-developing-applications.html
|
|
\page creator-visual-editor.html
|
|
\nextpage creator-developing-maemo.html
|
|
|
|
\title Implementing Application UI
|
|
|
|
You can either create QML projects from scratch or import them to
|
|
Qt Creator.
|
|
|
|
\section1 Creating QML Projects
|
|
|
|
Select \gui {File > New File or Project > Qt Quick Project > QML Application}.
|
|
|
|
\QMLD creates the following files:
|
|
|
|
\list
|
|
|
|
\o .qmlproject project file defines that all QML, JavaScript, and image
|
|
files in the project folder belong to the project. Therefore, you do not
|
|
need to individually list all the files in the project.
|
|
|
|
\o .qml file defines an item, such as a widget, screen, or the whole
|
|
application UI.
|
|
|
|
\endlist
|
|
|
|
To use JavaScript and image files in the application, copy them to the
|
|
project folder.
|
|
|
|
To import a QML project to Qt Creator, select
|
|
\gui {File > New File or Project > Qt Quick Project > Import Existing Qt QML Directory}.
|
|
|
|
\section1 Designing Application UI
|
|
|
|
One .qml file can define a widget, screen, or the whole application.
|
|
|
|
\section2 Creating Widgets
|
|
|
|
You can use the \gui Library items to create your own widgets. Drag and drop
|
|
them to the editor and modify their properties in the \gui Properties pane.
|
|
You can use QML to add properties for a widget. The properties are automatically
|
|
displayed in the \gui Properties pane.
|
|
|
|
Save the widgets as .qml files. You can import them to screens and applications.
|
|
|
|
\section2 Creating Screens
|
|
|
|
You can use the \gui Library items to create screens. Use states and transitions
|
|
to navigate between screens.
|
|
|
|
To add interaction methods, drag and drop a \gui {Focus Scope} or \gui {Mouse Area}
|
|
to the screen. In the code editor, add functions to execute when users select
|
|
the scope or area.
|
|
|
|
|
|
\section1 Implementing Application Logic
|
|
|
|
You can write JavaScript to implement the application logic. To include the script
|
|
files in the project, copy them to the project folder.
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
\previouspage creator-visual-editor.html
|
|
\page creator-developing-maemo.html
|
|
\nextpage creator-developing-symbian.html
|
|
|
|
\title Developing Maemo Applications
|
|
|
|
Maemo is a software platform developed by Nokia for smartphones and
|
|
Internet Tablets. The platform is based on the Linux operating system
|
|
which itself is derived from the Unix operating system. The platform
|
|
comprises of the Maemo operating system and Maemo SDK. The Maemo SDK
|
|
provides an open development environment for different applications on
|
|
top of the maemo platform. Maemo 5 is based on the Linux 2.6 operating
|
|
system. For more information refer,
|
|
\l{http://maemo.org/intro/platform/}{Maemo platform}.
|
|
|
|
|
|
|
|
\section1 Getting Started with Maemo Based Applications
|
|
|
|
To begin development for maemo applications, you require the following:
|
|
\list
|
|
\o An N900 device with updates installed.
|
|
\o \bold MADDE is the acronym for Maemo Application Development and
|
|
Debugging Environment. It is a cross-platform maemo development
|
|
tool. For more information about \bold MADDE pertaining to its
|
|
installation, configuration, and deployment on the device refer to
|
|
\l{http://wiki.maemo.org/MADDE}{MADDE Preview}
|
|
\o In order to setup the device IP address, you need to install
|
|
PC Connectivity or implement using CLI. For information on PC
|
|
Connectivity refer to the link,
|
|
\l{http://pc-connectivity.garage.maemo.org/2nd_edition/node3.html#SECTION00032300000000000000}
|
|
{PC Connectivity}.
|
|
\endlist
|
|
|
|
For deploying and running applications on the device, you need the
|
|
following:
|
|
\list
|
|
\o The Nokia USB drivers that come e.g. with PC Suite
|
|
\o Qt Creator should be installed on the device. A simple technique to
|
|
do this to run the maemo device \gui{Application Manager} and
|
|
download any application using Qt Creator. This installs all
|
|
dependencies required for Qt Creator at the same time.
|
|
\endlist
|
|
|
|
\section2 Supported Platform
|
|
|
|
The Qt Creator/MADDE integration is supported on the following platforms:
|
|
\list
|
|
\o Linux (32 bit and 64 bit)
|
|
\o Windows (32 bit and 64 bit)
|
|
\endlist
|
|
|
|
\section1 Setting Up the N900
|
|
|
|
\note The following assumes that you use the device's USB network
|
|
functionality. If you plan to connect your development PC to the N900
|
|
via a common WLAN network, you can ignore the USB-specific parts in the
|
|
following sections.
|
|
|
|
\section2 Installing the Mad Developer Package
|
|
|
|
To install the Mad Developer package on your device, follow the steps
|
|
listed below:
|
|
\list 1
|
|
\o Open the application manager and select,
|
|
\gui{Application catalogues} > \gui New.
|
|
Enter the data as displayed in the screenshot below
|
|
\note The complete web address is
|
|
\l http://repository.maemo.org/extras-devel
|
|
|
|
\image qtcreator-app-manager-extras-devel-screenshot.png
|
|
|
|
\o Click \gui Save and close the application manager.
|
|
\o Start xterm and create root: sudo gainroot.
|
|
\o Install \gui{apt-get install mad-developer}.
|
|
\o Start the Mad Developer apllication.
|
|
\endlist
|
|
|
|
\note In case you are using Microsoft Windows as development host, you will
|
|
need to change the driver loaded for instantiating the connection.
|
|
For this click, \gui{Manage USB} and select \gui{Load g_ether}.
|
|
|
|
Click \gui Edit in the usb0 row and confirm with \gui Configure. No
|
|
changes need to be made by default. The usb0 row should now display the
|
|
IP address 192.168.2.15. Now select \gui{Developer Password} to generate
|
|
a password for a freshly created user called "developer".
|
|
The password will stay valid for as long this dialog is open.
|
|
Refer to the screenshot below as an example.
|
|
|
|
\image qtcreator-mad-developer-screenshot.png
|
|
|
|
\section2 Installing the gdbserver
|
|
|
|
If you plan to debug your application on the N900 via Qt Creator, you will
|
|
need the gdbserver application, which is part of the gdb packages.
|
|
This package is not available in the standard repository yet,
|
|
as it is under development currently. This requires setting up another
|
|
repository in the application manager. Follow the steps as mentioned in
|
|
Installing the Mad Developer package and
|
|
enter the data as displayed in the screenshot below.
|
|
|
|
\image qtcreator-app-manager-sdk-screenshot.png
|
|
|
|
Click \gui Save and exit the application manager. Now you can
|
|
install gdb. Again, use the xterm and gain root access.
|
|
You can install gdb via xterm: \gui{apt-get install gdb}.
|
|
|
|
\section2 Establishing the USB Connection
|
|
|
|
Connect your device to the development PC via the USB cable. A dialog will
|
|
pop up asking for the mode to use. Choose \gui{PC suite mode}.
|
|
|
|
\note There have been reports about connection problems due to unreliable
|
|
USB ports. Switching to a different port might help in such a case.
|
|
|
|
\section1 Setting Up the Host PC
|
|
|
|
\section2 Establishing the USB Connection
|
|
|
|
\section3 Linux
|
|
|
|
Run the following command in a shell as root user:
|
|
\c{ifconfig usb0 192.168.2.14 up}
|
|
|
|
\section3 Windows
|
|
|
|
For Microsoft Windows, you will have perform the same steps via the Network
|
|
configuration tools available with the operating system.
|
|
Please open the network interface properties as shown in following
|
|
screenshots:
|
|
\image qtcreator-win-usb-network1.png
|
|
\image qtcreator-win-usb-network2.png
|
|
\image qtcreator-win-usb-network3.png
|
|
|
|
Change the IP to be set statically and enter the following values:
|
|
\list
|
|
\o IP Address: 192.168.2.14
|
|
\o SubnetMask: 255.255.255.0
|
|
\endlist
|
|
|
|
Accept these settings and close the Network Configuration. Depending on
|
|
your version of Microsoft Windows you might have to unplug and re-plug the
|
|
N900 to reload the driver with its according configuration.
|
|
|
|
\section2 Setting Up MADDE
|
|
|
|
After having downloaded the MADDE installer file for your platform from
|
|
\l{http://wiki.maemo.org/MADDE}{here}, execute it and follow the
|
|
instructions. The package will be installed. Then run:
|
|
\c{mad-admin list targets} to see which targets are available.
|
|
One of them should start with "fremantle". Install that one:
|
|
\c{mad-admin create fremantle-qt-xxx}.
|
|
After that, you will have a toolchain and a sysroot environment for
|
|
cross-compiling available.
|
|
|
|
|
|
\section1 Setting Up Qt Creator
|
|
|
|
\section2 Registering the MADDE Toolchain
|
|
|
|
Select \gui Tools > \gui Options > \gui Qt4 > \gui{Qt Versions}.
|
|
Click \inlineimage qtcreator-windows-add.png,
|
|
to add a new Qt version. The \gui{qMake Location} is the qmake executable
|
|
in \c{<MADDE dir>/targets/<fremantle target>/bin}.
|
|
|
|
\image qtcreator-screenshot-toolchain.png
|
|
|
|
|
|
\section2 Creating a Device Configuration
|
|
|
|
In order to deploy applications and run them remotely, Qt Creator needs to
|
|
know some parameters for device access. These are set in device
|
|
configurations.
|
|
|
|
Select \gui Tools > \gui Options > \gui Qt4 >
|
|
\gui{Maemo Device Configurations} and add a new configuration.
|
|
|
|
\image qtcreator-screenshot-devconf.png
|
|
|
|
|
|
\note The password is the one mad developer displays on the device.
|
|
Click \gui Test to check whether the device can be accessed properly. It is
|
|
recommended that you use the password-based login only to deploy your public
|
|
SSH key to the device (using the \gui{Deploy Key} button) and then switch to
|
|
key-based authentication.
|
|
|
|
Close the dialog by clicking, the \gui OK button after completion.
|
|
|
|
|
|
\section2 Setting Build and Run Configuration
|
|
|
|
Open a project for an application you want to develop for your N900.
|
|
Click \gui Projects to open the projects mode. In the \gui{Build Settings}
|
|
section, choose the MADDE Qt version which you registered earlier:
|
|
|
|
\image qtcreator-screenshot-build-settings.png
|
|
|
|
In the \gui{Run Settings} section, click \gui Add to add a new
|
|
run configuration on the maemo device. Set a name and select the device
|
|
configuration you created above in the popup menu. The result is
|
|
shown below:
|
|
|
|
\image qtcreator-screenshot-run-settings.png
|
|
|
|
\section2 Compiling, Running and Debugging Your Application
|
|
|
|
You can now continue your work as you were developing for any other platform
|
|
supported by Qt Creator: For compiling, Qt Creator will use the MADDE
|
|
toolchain's cross compiler. When you run your application, it will be
|
|
automatically copied onto the device and executed there. Your application's
|
|
windows will be displayed on the N900, command-line output can be seen in Qt
|
|
Creator's "Application output" window. Debugging works transparently as well.
|
|
|
|
|
|
\section1 Deploying the Application On Your Device
|
|
|
|
Once you succesfully build and run you application on Qt Creator, you
|
|
can deploy it onto your mobile device. The executable is copied onto the
|
|
device and runs in the same manner on the device as on your PC.
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-developing-maemo.html
|
|
\page creator-developing-symbian.html
|
|
\nextpage creator-debugging.html
|
|
|
|
\title Developing Symbian Applications
|
|
|
|
Qt Creator 1.3 comes with preliminary support for development of
|
|
applications using Qt for the Symbian Platform.
|
|
|
|
\e{Note that this is highly experimental, and not intended for production use.
|
|
The primary aim is to allow Symbian developers to familiarize themselves with Qt Creator
|
|
and provide feedback that helps us improve Symbian support in future versions of
|
|
Qt Creator.}
|
|
|
|
Please provide us with feedback, using the mailing list or IRC, as described on the
|
|
\l{http://qt.gitorious.org/qt-creator/pages/Home}{Qt Creator Development Wiki}.
|
|
|
|
\section1 Getting Started with Symbian Based Applications
|
|
|
|
You need the following software installed on your PC.
|
|
Only Windows development is supported.
|
|
|
|
\list
|
|
\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.
|
|
This is included in the Qt for Symbian binary installers.)
|
|
\o Either the GCCE ARM Toolchain that is included in the S60 Platform SDKs, or
|
|
RVCT 2.2 [build 686] or later (which is not available free of charge)
|
|
(Your environment needs to find the compiler in the PATH.)
|
|
\o Qt for Symbian 4.6.0, installed into the S60 SDKs you want to use
|
|
|
|
\endlist
|
|
|
|
For deploying and running applications on the device, you need the following:
|
|
\list
|
|
\o The Nokia USB drivers that come e.g. with PC Suite
|
|
\o The \l{http://tools.ext.nokia.com/trk/}{App TRK} application for your device
|
|
\endlist
|
|
|
|
Running Qt based applications on real devices 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 nokia_plugin\\openc\\s60opencsis\\pips_s60_\<version\>.sis
|
|
\o nokia_plugin\\openc\\s60opencsis\\openc_ssl_s60_\<version\>.sis
|
|
\o nokia_plugin\\opencpp\\s60opencppsis\\stdcpp_s60_\<version\>.sis
|
|
\endlist
|
|
|
|
If you want to run your applications in the Symbian emulator, you also need to install
|
|
Carbide.c++ v2.0.0 or higher.
|
|
|
|
\section1 Setting Up Qt Creator
|
|
|
|
When you run Qt Creator after installing the S60 Platform SDK and Qt for Symbian,
|
|
the installed SDKs and their corresponding Qt versions are automatically detected.
|
|
For each detected S60 SDK with Qt, a special entry is made in the Qt version management
|
|
settings \gui{Tools > Options... > Qt4 > Qt Versions}.
|
|
|
|
\e{Note that if you manually add a Qt version for Symbian, you must
|
|
also manually specify the S60 SDK to use for this version.}
|
|
|
|
\image qtcreator-qt4-qtversions-win-symbian.png
|
|
|
|
If you want to run your applications in the Symbian emulator, you need to point Qt Creator
|
|
to the Metrowerks Compiler that you want to use, by setting the \gui{Carbide Directory}
|
|
of the Qt version to the corresponding Carbide.c++ installation directory.
|
|
|
|
You can check what S60 SDKs and corresponding Qt versions are found in the
|
|
\gui{Tools > Options... > Qt4 > S60 SDKs} preference page.
|
|
|
|
\image qtcreator-qt4-s60sdks.png
|
|
|
|
\section1 Building Your Project
|
|
|
|
After installing all the prerequisites and checking the setup in Qt Creator as described
|
|
above, you need to set up your project.
|
|
\e{Note that the only supported build system for Qt for Symbian applications in Qt Creator
|
|
is qmake.}
|
|
|
|
Before you can build your project for the Symbian platform, you need to create build
|
|
configurations for it.
|
|
Open \gui{Projects mode} and make sure that your project is selected for editing in
|
|
\gui{Edit Project Settings for Project ...}. Add debug and release build configurations
|
|
for the Symbian target by selecting the corresponding Qt version from the build configuration
|
|
\gui{Add} menu.
|
|
|
|
\image qtcreator-symbian-add-buildconfiguration.png
|
|
|
|
The created build configurations default to using the GCCE tool chain. If you want to build
|
|
for the device using RVCT, or for the Symbian emulator using WINSCW, select \gui{Show Details}
|
|
and change the tool chain in the \gui{General} section of the build configuration settings.
|
|
|
|
Now you can switch to building your project for the device by selecting one of the
|
|
new build configurations as the active configuration at the top of \gui{Projects mode}.
|
|
|
|
\image qtcreator-symbian-change-buildconfiguration.png
|
|
|
|
\section1 Running Your Project
|
|
|
|
\section2 Running Your Project in the Emulator
|
|
|
|
Similar to the build configuration setup for your project, you need to create a run
|
|
configuration for running your project in the Symbian emulator:
|
|
\list 1
|
|
\o Switch to \gui{Projects mode}.
|
|
\o Select \gui{Run Settings} > \gui{Add > YourApplication in Symbian Emulator}
|
|
\endlist
|
|
|
|
\image qtcreator-symbian-add-run-in-emulator.png
|
|
|
|
To start your project in the emulator, select this run configuration as the active configuration
|
|
at the top of \gui{Projects mode} window and press the run button.
|
|
|
|
\image qtcreator-symbian-change-run-in-emulator.png
|
|
|
|
\section2 Running Your Project on the Device
|
|
|
|
To run your project on a real Symbian device, just add another run configuration in
|
|
\gui{Projects mode} via \gui{Run Settings} > \gui{Add > YourApplication on Symbian Device}.
|
|
|
|
\image qtcreator-symbian-add-runconfiguration.png
|
|
|
|
\image qtcreator-symbian-details-runconfiguration.png
|
|
|
|
In the details of the run configuration you can specify a certificate to use, and
|
|
select one of the devices that you have currently attached to your computer.
|
|
The only connection mode supported at the moment is USB in \e{PC Suite} mode.
|
|
For actually running your application on the device, you need to set the device run configuration
|
|
as the active configuration at the top of \gui{Projects mode}.
|
|
Start the \gui{App TRK} application on your device and press the run button to create
|
|
a package for your application, deploy, install and run it automatically on your device.
|
|
|
|
\image qtcreator-symbian-change-runconfiguration.png
|
|
|
|
\section2 Troubleshooting
|
|
|
|
If you cannot build the application, check if:
|
|
\list
|
|
\o You selected a Qt version for Symbian for building the application.
|
|
\o The settings for the Qt version you use to build your project are
|
|
correct. The path to the S60 SDK must point to the S60 SDK
|
|
installation directory. Select \gui Tools > \gui Options...
|
|
> \gui Debugger > \gui{Symbian TRK} and check if it points to the
|
|
debugger toolchain.
|
|
\endlist
|
|
If you cannot run the application in the emulator, check if:
|
|
\list
|
|
\o The emulator or device run configuration selected is in the active
|
|
run configuration.
|
|
\o You built the application for the emulator by using WINSCW or for
|
|
the device by using GCCE or RVCT.
|
|
\o The emulator process cannot be started, try closing Qt Creator and
|
|
starting the application directly from your file manager. Having
|
|
done this, Qt Creator should be able to run your projects in the
|
|
emulator.
|
|
\endlist
|
|
If you cannot run the application on a device, check if:
|
|
\list
|
|
\o The device is connected via USB in \e{PC Suite} mode.
|
|
\o App TRK is running on the device, using the USB connection, with the
|
|
status \e connected.
|
|
\o The device is detected and selected in the run configuration
|
|
details.
|
|
\endlist
|
|
|
|
If this does not help to solve your problem, search the qt-creator@trolltech.com
|
|
mailing list archives or provide feedback to us via the methods described on the
|
|
\l{http://qt.gitorious.org/qt-creator/pages/Home}{Qt Creator Development Wiki}.
|
|
|
|
*/
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-version-control.html
|
|
\page adding-plugins.html
|
|
\nextpage creator-tips.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.trolltech.com/4.6/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 an SDK, where it is integrated into Qt Creator.
|
|
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 and \c {QtCreator.app/Contents/MacOS/designer} folder on Mac. 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}.
|
|
|
|
\section1 Matching Build Keys
|
|
|
|
The Qt Creator 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 Qt Creator because the build-keys do not match. The plugins can only be
|
|
used in the standalone version of \QD. Choose \gui{Help > About Qt Creator} to check
|
|
the Qt version Qt Creator was built with.
|
|
|
|
To use \QD plugins that were built for the shipped Qt version, make sure that
|
|
Qt Creator is built with the same compiler by either recompiling Qt Creator using MinGW or
|
|
recompiling Qt with Microsoft Visual Studio, depending on which configuration you want to
|
|
use for your applications.
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage adding-plugins.html
|
|
\page creator-tips.html
|
|
\nextpage creator-keyboard-shortcuts.html
|
|
|
|
\title Tips and Tricks
|
|
|
|
|
|
\section1 Switching between modes
|
|
|
|
Qt Creator uses different modes for different purposes. You can quickly
|
|
switch between these modes with the following keyboard shortcuts:
|
|
\list
|
|
\o \gui Welcome mode \key Ctrl+1
|
|
\o \gui Edit mode \key Ctrl+2
|
|
\o \gui Debug mode \key Ctrl+3
|
|
\o \gui Projects mode \key Ctrl+4
|
|
\o \gui Help mode \key Ctrl+5
|
|
\endlist
|
|
|
|
|
|
For more information about Qt Creator modes, see \l {Qt Creator Modes}.
|
|
|
|
|
|
|
|
\section1 Moving Between Open Files
|
|
|
|
To quickly move between currently open files, press
|
|
\key Ctrl+Tab.
|
|
|
|
|
|
\section1 Moving To the Edit Mode
|
|
|
|
To move to the \gui Edit mode and currently active file, press
|
|
\key Esc.
|
|
|
|
If you already are in the \gui Edit mode:
|
|
\list
|
|
\o The first press moves focus to the editor
|
|
\o The second press closes secondary windows
|
|
\endlist
|
|
|
|
\section1 Using the Filter in Options Dialog
|
|
|
|
To find specific settings you require in \gui{Tools} > \gui{Options}
|
|
use the filter located at the top left of the Options dialog box.
|
|
|
|
|
|
\section1 Using Keyboard Shortcuts
|
|
|
|
Qt Creator provides \l{Keyboard Shortcuts}{many useful keyboard shortcuts}.
|
|
|
|
To customize, import or export keyboard shortcuts, select \gui Tools >
|
|
\gui Options... > \gui Environment > \gui Keyboard.
|
|
|
|
|
|
\section1 Running Qt Creator From Command Line
|
|
|
|
You can launch Qt Creator from command line using the name of an
|
|
existing session or \c .pro file by giving the name as the command
|
|
argument.
|
|
|
|
For example, running \tt{qtcreator somesession}, launches Qt Creator and
|
|
loads session somesession.
|
|
|
|
\note Make sure Qt Creator is included in the PATH environment variable.
|
|
This can be done by typing the following in the command line:
|
|
\code
|
|
set PATH=c:\qtsdk\mingw\bin;c:\qtsdk\qt\bin;%PATH%
|
|
\endcode
|
|
|
|
|
|
\section1 Showing and Hiding the Sidebar
|
|
|
|
To toggle the sidebar in the \gui Edit and \gui Debug modes, click
|
|
\inlineimage qtcreator-togglebutton.png
|
|
or press \key Alt+0 (\key Cmd+0 on Mac OS X).
|
|
|
|
For more information on using the sidebar, see \l {Browsing Project Contents}.
|
|
|
|
|
|
|
|
\section1 Moving To Symbols
|
|
|
|
To move straight to a symbol used in a project, select the symbol in the
|
|
\gui Editor toolbar drop-down menu.
|
|
|
|
For more information on the editor toolbar,
|
|
see \l {Using the Editor Toolbar}.
|
|
|
|
|
|
|
|
\section1 Displaying Signals and Slots
|
|
|
|
If an instance of a class is derived from QObject, and you would like to
|
|
find all other objects connected to one of your object's slots using
|
|
Qt's signals and slots mechanism, select \gui Tools > \gui Options...
|
|
> \gui{Debugging Helper} > \gui{Use Debugging Helper}.
|
|
|
|
In the \gui{Locals and Watchers} view, expand the object's entry and open
|
|
the slot in the \e slots subitem. The objects connected to this slot are
|
|
shown as children of the slot. This method works with signals too.
|
|
|
|
|
|
\section1 Displaying Low Level Data
|
|
|
|
If special debugging of Qt objects fails due to data corruption within the
|
|
debugged objects, you can switch off the debugging helpers. When debugging
|
|
helpers are switched off low-level structures become visible.
|
|
|
|
To switch off the debugging helpers:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options... > \gui Debugger >
|
|
\gui{Debugging Helper}.
|
|
\o Uncheck the \gui{Use debugging helper} checkbox.
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-tips.html
|
|
\page creator-keyboard-shortcuts.html
|
|
\nextpage creator-known-issues.html
|
|
|
|
\title Keyboard Shortcuts
|
|
|
|
Qt Creator provides various keyboard shortcuts to speed up your development
|
|
process.
|
|
|
|
|
|
\section1 Configuring Keyboard Shortcuts
|
|
|
|
To customize a keyboard shortcut:
|
|
\list 1
|
|
\o Select \gui Tools > \gui Options > \gui Environment >
|
|
\gui Keyboard.
|
|
\o Select an action from the list.
|
|
\o In \gui{Key Sequence} enter the shortcut key you want to associate
|
|
with the selected action.
|
|
\endlist
|
|
|
|
Qt Creator allows you to use different keyboard shortcut mapping schemes:
|
|
\list
|
|
\o To import a keyboard shortcut mapping scheme, click \gui Import
|
|
and select the kms file containing keyboard shortcut mapping scheme
|
|
you want to import.
|
|
\o To export the current keyboard shortcut mapping scheme, click
|
|
\gui Export and select the location where you want to save the
|
|
exported kms file.
|
|
\endlist
|
|
|
|
|
|
\section1 Default Keyboard Shortcuts
|
|
|
|
The following tables list the default keyboard shortcuts. They are
|
|
categorized by actions.
|
|
|
|
|
|
\section2 General Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o Action
|
|
\o Keyboard shortcut
|
|
\row
|
|
\o Open file or project
|
|
\o Ctrl+O
|
|
\row
|
|
\o New file or project
|
|
\o Ctrl+N
|
|
\row
|
|
\o Open in external editor
|
|
\o Alt+V, Alt+I
|
|
\row
|
|
\o Cut
|
|
\o Ctrl+X
|
|
\row
|
|
\o Copy
|
|
\o Ctrl+C
|
|
\row
|
|
\o Paste
|
|
\o Ctrl+V
|
|
\row
|
|
\o Redo
|
|
\o Ctrl+Y
|
|
\row
|
|
\o Save
|
|
\o Ctrl+S
|
|
\row
|
|
\o Save all
|
|
\o Ctrl+A
|
|
\row
|
|
\o Close window
|
|
\o Ctrl+W
|
|
\row
|
|
\o Close all
|
|
\o Ctrl+Shift+W
|
|
\row
|
|
\o Go back
|
|
\o Alt+Left
|
|
\row
|
|
\o Go forward
|
|
\o Alt+Right
|
|
\row
|
|
\o Go to line
|
|
\o Ctrl+L
|
|
\row
|
|
\o Next open document in history
|
|
\o Ctrl+Shift+Tab
|
|
\row
|
|
\o Goto other split
|
|
\o Ctrl+E, O
|
|
\row
|
|
\o Previous open document in history
|
|
\o Ctrl+Tab
|
|
\row
|
|
\o Activate \gui Locator
|
|
\o Ctrl+K
|
|
\row
|
|
\o Switch to \gui Welcome mode
|
|
\o Ctrl+1
|
|
\row
|
|
\o Switch to \gui Edit mode
|
|
\o Ctrl+2
|
|
\row
|
|
\o Switch to \gui Debug mode
|
|
\o Ctrl+3
|
|
\row
|
|
\o Switch to \gui Projects mode
|
|
\o Ctrl+4
|
|
\row
|
|
\o Switch to \gui Help mode
|
|
\o Ctrl+5
|
|
\row
|
|
\o Switch to \gui Output mode
|
|
\o Ctrl+6
|
|
\row
|
|
\o Toggle \gui{Build Issues} pane
|
|
\o Alt+1 (Cmd+1 on Mac OS X)
|
|
\row
|
|
\o Toggle \gui{Search Results} pane
|
|
\o Alt+2 (Cmd+2 on Mac OS X)
|
|
\row
|
|
\o Toggle \gui{Application Output} pane
|
|
\o Alt+3 (Cmd+3 on Mac OS X)
|
|
\row
|
|
\o Toggle \gui{Compile Output} pane
|
|
\o Alt+4 (Cmd+4 on Mac OS X)
|
|
\row
|
|
\o Activate \gui Bookmarks pane
|
|
\o Alt+M
|
|
\row
|
|
\o Activate \gui{File System} pane
|
|
\o Alt+Y
|
|
\row
|
|
\o Activate \gui{Open Documents} pane
|
|
\o Alt+O
|
|
\row
|
|
\o Activate \gui Projects pane
|
|
\o Alt+X
|
|
\row
|
|
\o Full screen
|
|
\o Ctrl+Shift+F11
|
|
\row
|
|
\o Toggle the sidebar
|
|
\o Alt+0 (Cmd+0 on Mac OS X)
|
|
\row
|
|
\o Undo
|
|
\o Ctrl+Z
|
|
\row
|
|
\o Move to \gui Edit mode
|
|
|
|
In \gui Edit mode:
|
|
\list
|
|
\o The first press moves focus to the editor
|
|
\o The second press closes secondary windows
|
|
\endlist
|
|
\o Esc
|
|
\endtable
|
|
|
|
|
|
\section2 Editing Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o Action
|
|
\o Keyboard shortcut
|
|
\row
|
|
\o Auto-indent selection
|
|
\o Ctrl+I
|
|
\row
|
|
\o Collapse
|
|
\o Ctrl+<
|
|
\row
|
|
\o Expand
|
|
\o Ctrl+>
|
|
\row
|
|
\o Trigger a completion in this scope
|
|
\o Ctrl+Space
|
|
\row
|
|
\o Copy line down
|
|
\o Ctrl+Alt+Down
|
|
\row
|
|
\o Copy line up
|
|
\o Ctrl+Alt+Up
|
|
\row
|
|
\o Cut line
|
|
\o Shift+Del
|
|
\row
|
|
\o Decrease font size
|
|
\o Ctrl+- (Ctrl+Roll mouse wheel down)
|
|
\row
|
|
\o Increase font size
|
|
\o Ctrl++ (Ctrl+Roll mouse wheel up)
|
|
\row
|
|
\o Toggle vim-style editing
|
|
\o Alt+V, Alt+V
|
|
\row
|
|
\o Split
|
|
\o Ctrl+E, 2
|
|
\row
|
|
\o Split side by side
|
|
\o Ctrl+E, 3
|
|
\row
|
|
\o Remove all splits
|
|
\o Ctrl+E, 1
|
|
\row
|
|
\o Remove current split
|
|
\o Ctrl+E, 0
|
|
\row
|
|
\o Select all
|
|
\o Ctrl+A
|
|
\row
|
|
\o Go to block end
|
|
\o Ctrl+]
|
|
\row
|
|
\o Go to block start
|
|
\o Ctrl+[
|
|
\row
|
|
\o Go to block end with selection
|
|
\o Ctrl+}
|
|
\row
|
|
\o Go to block start with selection
|
|
\o Ctrl+{
|
|
\row
|
|
\o Move current line down
|
|
\o Ctrl+Shift+Down
|
|
\row
|
|
\o Move current line up
|
|
\o Ctrl+Shift+Up
|
|
\row
|
|
\o Trigger a quick fix in this scope
|
|
\o Alt+Return
|
|
\row
|
|
\o Rewrap paragraph
|
|
\o Ctrl+E, R
|
|
\row
|
|
\o Select the current block
|
|
|
|
The second press extends the selection to the parent block
|
|
\o Ctrl+U
|
|
\row
|
|
\o Enable text wrapping
|
|
\o Ctrl+E, Ctrl+W
|
|
\row
|
|
\o Toggle comment for selection
|
|
\o Ctrl+/
|
|
\row
|
|
\o Visualize whitespace
|
|
\o Ctrl+E, Ctrl+V
|
|
\row
|
|
\o Delete
|
|
\o Del
|
|
\row
|
|
\o Adjust size
|
|
\o Ctrl+J
|
|
\row
|
|
\o Lay out in a grid
|
|
\o Ctrl+G
|
|
\row
|
|
\o Lay out horizontally
|
|
\o Ctrl+H
|
|
\row
|
|
\o Lay out vertically
|
|
\o Ctrl+L
|
|
\row
|
|
\o Preview
|
|
\o Ctrl+Alt+R
|
|
\row
|
|
\o Edit signals and slots
|
|
\o F4
|
|
\row
|
|
\o Edit widgets
|
|
\o F3
|
|
\row
|
|
\o Toggle bookmark
|
|
\o Ctrl+M
|
|
\row
|
|
\o Go to next bookmark
|
|
\o Ctrl+.
|
|
\row
|
|
\o Go to previous bookmark
|
|
\o Ctrl+,
|
|
\row
|
|
\o Fetch snippet
|
|
\o Alt+C, Alt+F
|
|
\row
|
|
\o Paste snippet
|
|
\o Alt+C, Alt+P
|
|
\row
|
|
\o Find usages
|
|
\o Ctrl+Shift+U
|
|
\row
|
|
\o Follow symbol under cursor
|
|
|
|
Works with namespaces, classes, methods, variables, include
|
|
statements and macros
|
|
\o F2
|
|
\row
|
|
\o Rename symbol under cursor
|
|
\o Ctrl+Shift+R
|
|
\row
|
|
\o Switch between method declaration and definition
|
|
\o Shift+F2
|
|
\row
|
|
\o Switch between header and source file
|
|
\o F4
|
|
\endtable
|
|
|
|
\section2 Debugging Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o Action
|
|
\o Keyboard shortcut
|
|
\row
|
|
\o Start debugging
|
|
\o F5
|
|
\row
|
|
\o Stop or interrupt debugger
|
|
\o Shift+F5
|
|
\row
|
|
\o Reset debugger
|
|
\o Ctrl+Shift+F5
|
|
\row
|
|
\o Step over
|
|
\o F10
|
|
\row
|
|
\o Step into
|
|
\o F11
|
|
\row
|
|
\o Step out
|
|
\o Shift+F11
|
|
\row
|
|
\o Toggle breakpoint
|
|
\o F9
|
|
\endtable
|
|
|
|
|
|
\section2 Project Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o Action
|
|
\o Keyboard shortcut
|
|
\row
|
|
\o Build project
|
|
\o Ctrl+B
|
|
\row
|
|
\o Build all
|
|
\o Ctrl+Shift+B
|
|
\row
|
|
\o New project
|
|
\o Ctrl+Shift+N
|
|
\row
|
|
\o Run
|
|
\o Ctrl+R
|
|
\endtable
|
|
|
|
|
|
\section2 Help Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o Action
|
|
\o Keyboard shortcut
|
|
\row
|
|
\o View context-sensitive help
|
|
\o F1
|
|
\row
|
|
\o Activate contents in \gui Help mode
|
|
\o Ctrl+T
|
|
\row
|
|
\o Add bookmark in \gui Help mode
|
|
\o Ctrl+M
|
|
\row
|
|
\o Activate index in \gui Help mode
|
|
\o Ctrl+I
|
|
\row
|
|
\o Reset font size in \gui Help mode
|
|
\o Ctrl+0
|
|
\row
|
|
\o Activate search in \gui Help mode
|
|
\o Ctrl+S
|
|
\endtable
|
|
|
|
|
|
\section2 Version Control Keyboard Shortcuts
|
|
|
|
\table
|
|
\header
|
|
\o {1,2} Action
|
|
\o {4,1} Version control system
|
|
\header
|
|
\o CVS
|
|
\o Git
|
|
\o Perforce
|
|
\o Subversion
|
|
\row
|
|
\o Add
|
|
\o Alt+C, Alt+A
|
|
\o Alt+G, Alt+A
|
|
\o
|
|
\o Alt+S, Alt+A
|
|
\row
|
|
\o Commit
|
|
\o Alt+C, Alt+C
|
|
\o Alt+G, Alt+C
|
|
\o
|
|
\o
|
|
\row
|
|
\o Diff
|
|
\o Alt+C, Alt+D
|
|
\o Alt+G, Alt+D
|
|
\o
|
|
\o Alt+S, Alt+D
|
|
\row
|
|
\o Diff project
|
|
\o
|
|
\o Alt+G, Alt+Shift+D
|
|
\o Alt+P, Alt+D
|
|
\o
|
|
\row
|
|
\o Blame
|
|
\o
|
|
\o Alt+G, Alt+B
|
|
\o
|
|
\o
|
|
\row
|
|
\o Log
|
|
\o
|
|
\o Alt+G, Alt+L
|
|
\o Alt+P, Alt+F
|
|
\o
|
|
\row
|
|
\o Log project
|
|
\o
|
|
\o Alt+G, Alt+K
|
|
\o
|
|
\o
|
|
\row
|
|
\o Status
|
|
\o
|
|
\o Alt+G, Alt+S
|
|
\o
|
|
\o
|
|
\row
|
|
\o Undo changes
|
|
\o
|
|
\o Alt+G, Alt+U
|
|
\o
|
|
\o
|
|
\row
|
|
\o Diff project
|
|
\o
|
|
\o Alt+G, Alt+Shift+D
|
|
\o Alt+P, Alt+D
|
|
\o
|
|
\row
|
|
\o Edit
|
|
\o
|
|
\o
|
|
\o Alt+P, Alt+E
|
|
\o
|
|
\row
|
|
\o Opened
|
|
\o
|
|
\o
|
|
\o Alt+P, Alt+O
|
|
\o
|
|
\row
|
|
\o Revert
|
|
\o
|
|
\o
|
|
\o Alt+P, Alt+R
|
|
\o
|
|
\row
|
|
\o Submit
|
|
\o
|
|
\o
|
|
\o Alt+P, Alt+S
|
|
\o
|
|
\endtable
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-known-issues.html
|
|
\page creator-glossary.html
|
|
\nextpage creator-acknowledgements.html
|
|
|
|
\title Glossary
|
|
|
|
\table
|
|
\header
|
|
\o Term
|
|
\o Meaning
|
|
|
|
\row
|
|
\o
|
|
\raw HTML
|
|
Qt in PATH
|
|
\endraw
|
|
\target glossary-system-qt
|
|
\o This is the Qt
|
|
version for the \c qmake command found in your \c PATH
|
|
environment variable.
|
|
This is likely to be the system's Qt version.
|
|
|
|
\row
|
|
\o
|
|
\raw HTML
|
|
Default Qt
|
|
\endraw
|
|
\target glossary-default-qt
|
|
\o The version of Qt configured in \gui{Tools > Options... > Qt 4
|
|
> Default Qt Version}. This is the Qt version used by your
|
|
new projects. It defaults to the Qt in PATH.
|
|
|
|
\row
|
|
\o
|
|
\raw HTML
|
|
Project Qt
|
|
\endraw
|
|
\target glossary-project-qt
|
|
\o The version of Qt configured in \gui{Build&Run > Build
|
|
Settings > Build Configurations}. This is the Qt version that
|
|
is actually used by a particular project. It defaults to
|
|
Default Qt.
|
|
|
|
\row
|
|
\o
|
|
\raw HTML
|
|
Shadow build
|
|
\endraw
|
|
\target glossary-shadow-build
|
|
\o Shadow building means building a project in a separate
|
|
directory, the \e{build directory}. The build directory is
|
|
different from the source directory. One of the benefits of
|
|
shadow building is that it keeps your source directory clean.
|
|
Shadow building is the best practice if you need many build
|
|
configurations for a single set of source.
|
|
\endtable
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-keyboard-shortcuts.html
|
|
\page creator-known-issues.html
|
|
\nextpage creator-glossary.html
|
|
|
|
\title Known Issues
|
|
|
|
There are some known issues with Qt Creator.
|
|
The development team is aware of them, there is no need to report them as bugs.
|
|
|
|
\section1 Known Issues of Version 1.3.82
|
|
|
|
\list
|
|
\o Debugging Helper does not work while performing On-Device Debugging.
|
|
|
|
\o QML Preview (Run Project) only works if built against Qt with
|
|
Declarative UI.
|
|
|
|
\o Setting breakpoints in code that is compiled into the binary more
|
|
than once does not work.
|
|
|
|
\o On Linux and Windows, installing Qt with one user account and
|
|
then using it with another requires other users to manually set
|
|
the Qt version. On Windows, setting the MinGW location is
|
|
required as well. The same applies to the location of GDB for Symbian.
|
|
A workaround is to copy %APPDATA%/Nokia/qtcreator.ini (Windows) or
|
|
$HOME/.config/Nokia/QtCreator.ini (Linux) from the directory
|
|
of the user who installed Qt Creator to the other user.
|
|
This issue does not exist on Mac OS X.
|
|
\endlist
|
|
|
|
\section1 Known Issues of Version 1.2.0 and 1.2.1
|
|
|
|
\list
|
|
\o Gdb on Windows may not work if the 'Embassy \reg Security Center' software
|
|
by 'Wave \reg Systems' is installed and active (causing crashes in \c{vxvault.dll)}).
|
|
|
|
\o Only simple data types (POD) work in the Watch Window of CDB.
|
|
|
|
\o Qt Creator uses SQLite for storing some of its settings. SQLite is
|
|
known to have problems with certain NFS servers (most notably the
|
|
nfs-user-server 2.2beta), since they can lock up the application
|
|
when it tries to lock the database. If your home directory is on an
|
|
NFS share and you encounter this issue, one option would be to
|
|
switch to the nfs-kernel-server, or create a symlink so that the
|
|
settings are stored locally.
|
|
\endlist
|
|
|
|
\section1 Known Issues of Version 1.1.0
|
|
|
|
\list
|
|
\o Paths or file names containing spaces or special characters, e.g.,
|
|
colons, dollar signs, hash marks etc. may cause problems. This
|
|
is because some of the tools Qt Creator uses in the background have
|
|
restrictions on the characters allowed in file and directory names.
|
|
To be on the safe side, we recommend creating projects and project
|
|
items with names consisting of plain characters, numbers,
|
|
underscores, and hyphens.
|
|
|
|
\o \c{.pro} files are reformatted if files have been added or removed.
|
|
Whitespace is not preserved.
|
|
|
|
\o There is no IDE support for adding files to include (\c .pri) files.
|
|
|
|
\o There is no IDE support for adding/removing sub-projects. Project
|
|
hierarchies (SUBDIRS template) have to be created manually.
|
|
|
|
\o The file system sidebar does not update automatically. As a
|
|
workaround, switch to another directory and then back.
|
|
|
|
\o Loading KDE4 designer plugins breaks the style in KDE < 4.2.1
|
|
due to a bug in KDE.
|
|
|
|
\o The DEFINES and INCLUDES set in \c{.pro} files are not dealt with
|
|
on a file-specific level. Because of this, handling of DEFINES has
|
|
been disabled completely. Also the \c{.qmake.cache} is not being
|
|
parsed. In general, the \c{.pro} file parser is incomplete and
|
|
problems are still to be expected.
|
|
|
|
\o Code completion for generated UI header files is updated only
|
|
after a build.
|
|
|
|
\o Code completion does not support typedefs for nested classes.
|
|
|
|
\o There is a kernel bug essentially making debugging unreliable on
|
|
2.6.24 kernels for i386 (which is, unfortunately, the default on
|
|
Ubuntu 8.04). See
|
|
\l{https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/230315/} for
|
|
details. The only solution to this problem is to boot another
|
|
kernel.
|
|
|
|
\o Gdb may take long to load debugging symbols, especially from large
|
|
libraries like \c libQtWebKit. Starting the debugging module can
|
|
take up to several minutes without visible progress.
|
|
|
|
\o Setting breakpoints in files that do not have unique absolute
|
|
paths may fail. For example, remounting parts of a file system
|
|
using the --bind mount option.
|
|
|
|
\o There is no syntax highlighting for \c CMake project files.
|
|
|
|
\o Project files included from \c{CMakeLists.txt} are not shown in the
|
|
navigation tree.
|
|
|
|
\o Using the Visual Studio Compiler with \c CMake is not supported.
|
|
|
|
\o Creating new \c CMake projects with Qt Creator is not supported.
|
|
|
|
\o Having more than one build directory for \c CMake is not supported.
|
|
|
|
\o Changing the build directory for \c CMake after the initial import
|
|
is disabled.
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-glossary.html
|
|
\page creator-acknowledgements.html
|
|
|
|
\title Acknowledgements
|
|
|
|
\section1 Third-party Components
|
|
|
|
Qt Creator contains the following third-party components:
|
|
|
|
\list
|
|
\o \bold{Open Source front-end for C++ (license MIT)}, enhanced for use in
|
|
Qt Creator.\br
|
|
Roberto Raggi <roberto.raggi@gmail.com>\br
|
|
QtCreator/src/shared/cplusplus\br\br
|
|
|
|
\o \bold{Botan, a C++ crypto library. Version 1.8.8}\br
|
|
\list
|
|
\o Copyright (C) 1999-2004 The Botan Project. All rights reserved.
|
|
\o Copyright (C) 1999-2009 Jack Lloyd
|
|
\o 2001 Peter J Jones
|
|
\o 2004-2007 Justin Karneges
|
|
\o 2005 Matthew Gregan
|
|
\o 2005-2006 Matt Johnston
|
|
\o 2006 Luca Piccarreta
|
|
\o 2007 Yves Jerschow
|
|
\o 2007-2008 FlexSecure GmbH
|
|
\o 2007-2008 Technische Universitat Darmstadt
|
|
\o 2007-2008 Falko Strenzke
|
|
\o 2007-2008 Martin Doering
|
|
\o 2007 Manuel Hartl
|
|
\o 2007 Christoph Ludwig
|
|
\o 2007 Patrick Sona
|
|
\endlist
|
|
All rights reserved.\br\br
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions are
|
|
met:\br\br
|
|
|
|
1. Redistributions of source code must retain the above copyright
|
|
notice, this list of conditions, and the following disclaimer.\br\br
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions, and the following disclaimer in the
|
|
documentation and/or other materials provided with the distribution.\br
|
|
\br
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "AS IS" AND ANY EXPRESS OR
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
|
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE
|
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\br\br
|
|
The source code of Botan C++ crypto library can be found
|
|
here:
|
|
\list
|
|
\o QtCreator/src/libs/3rdparty
|
|
\o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty}
|
|
\endlist
|
|
\br\br
|
|
|
|
\o \bold{NetSieben SSH Library is a Secure Shell client library for C++.
|
|
Version 1.3.2}\br
|
|
\list
|
|
\o \bold{Commercial License:} For organizations who do not want to
|
|
release the source code for their applications as open source/
|
|
free software; in other words they do not want to comply with the
|
|
GNU General Public License (GPL) or Q Public License.
|
|
\o \bold{Non Commercial / Open Source License:} NetSieben believes in
|
|
contributing back to the open source community, thus it has released
|
|
the SSH Library under Q Public License as it is defined by Trolltech
|
|
AS of Norway. The Open Source License allows the user to use software
|
|
under an open source / free software license, and distribute it
|
|
freely. The software can be used at no charge with the condition
|
|
that if the user uses the SSH Library in an application they wish to
|
|
redistribute, then the complete source code for your application must
|
|
be available and freely redistributable under reasonable conditions.
|
|
For more information on the used QPL License see:
|
|
QtCreator/src/libs/3rdparty/net7ssh/LICENSE.QPL
|
|
\endlist\br\br
|
|
The source code of NetSieben Secure Shell C++ Library can be found
|
|
here:
|
|
\list
|
|
\o QtCreator/src/libs/3rdparty
|
|
\o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty}
|
|
\endlist
|
|
\endlist
|
|
*/
|