2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage{index.html}{Qt Creator}
|
|
|
|
\page index.html
|
2008-12-16 13:58:26 +01:00
|
|
|
\nextpage creator-quick-tour.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\title Qt Creator Manual
|
|
|
|
|
2009-03-04 12:46:05 +01:00
|
|
|
\section1 Version 1.0.80
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
The goal of Qt Creator is to provide a cross-platform, complete Integrated
|
|
|
|
Development Environment (IDE) to develop Qt projects. It is available for
|
|
|
|
the Linux, Mac OS X and Windows platforms.
|
|
|
|
|
2009-02-26 17:02:15 +01:00
|
|
|
\note Please report bugs and
|
|
|
|
suggestions to the Qt Software task tracker at
|
|
|
|
http://www.qtsoftware.com/developer/task-tracker.
|
|
|
|
You can also join the discussion list qt-creator@trolltech.com. To subscribe, send a
|
2008-12-02 12:01:29 +01:00
|
|
|
message with the word \e subscribe to qt-creator-request@trolltech.com.
|
|
|
|
For more information on Qt mailing lists, visit http://lists.trolltech.com
|
|
|
|
|
2009-03-05 15:05:32 +01:00
|
|
|
\image qtcreator-screenshots.png
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
\table
|
2008-12-16 14:50:00 +01:00
|
|
|
\row
|
2009-01-19 13:21:22 +01:00
|
|
|
\o Qt Creator includes a wide range of useful features. Among them are:
|
2008-12-02 12:01:29 +01:00
|
|
|
\list 1
|
2008-12-11 11:20:25 +01:00
|
|
|
\o \bold{Smart Code Editor}: The code editor provides syntax
|
|
|
|
highlighting as well as code completion.
|
2008-12-02 12:01:29 +01:00
|
|
|
\o \bold{Qt4 Project Generating Wizard}: This wizard allows the user
|
|
|
|
to generate a project for a console application, a GUI application,
|
|
|
|
or a C++ library.
|
|
|
|
\o \bold{Qt Help Integration}: Qt's entire documentation can be
|
|
|
|
accessed easily by clicking on the \gui{Help} button.
|
|
|
|
\o \bold{Qt Designer Integration}: User interface forms can be designed
|
|
|
|
within Qt Creator. Simply double-click on a \c{.ui} file within the
|
|
|
|
\gui{Project Explorer} to launch the integration.
|
2008-12-12 20:37:17 +01:00
|
|
|
\o \bold{Locator}: A powerful navigation tool that lets the user locate
|
|
|
|
files and classes using minimal keystrokes.
|
2008-12-02 12:01:29 +01:00
|
|
|
\o \bold{Support for qmake's .pro file format}: The project's \c{.pro}
|
|
|
|
file is used as a project description file.
|
|
|
|
\o \bold{Debugging Interface to GDB}: Applications can be debugged
|
|
|
|
within Qt Creator using a graphical frontend to the GNU symbolic
|
|
|
|
debugger.
|
|
|
|
\endlist
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
To learn more about the Qt Creator, click on one of the links below:
|
|
|
|
|
|
|
|
\list
|
2009-02-27 10:32:10 +01:00
|
|
|
\o \l{A Quick Tour of Qt Creator}
|
|
|
|
\o \l{Creating a Project in Qt Creator}
|
|
|
|
\o \l{The Code Editor}
|
|
|
|
\o \l{Build Settings}
|
|
|
|
\o \l{Qt Version Management}
|
|
|
|
\o \l{Writing a Simple Program with Qt Creator}
|
|
|
|
\o \l{Qt Creator and Version Control Systems}
|
|
|
|
\o \l{Navigating Quickly Around Your Code with Locator}
|
|
|
|
\o \l{Debugging with Qt Creator}
|
|
|
|
\o \l{Tips and Tricks}
|
|
|
|
\o \l{Keyboard Shortcuts}
|
|
|
|
\o \l{Glossary}
|
|
|
|
\o \l{Supported Platforms}
|
2009-03-04 12:46:05 +01:00
|
|
|
\o \l{Known Issues of Version 1.0.80}
|
2009-02-27 10:32:10 +01:00
|
|
|
\o \l{Acknowledgements}
|
2008-12-02 12:01:29 +01:00
|
|
|
\endlist
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2008-12-15 14:29:59 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\page creator-quick-tour.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-code-editor.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-01-12 09:36:01 +01:00
|
|
|
\title A Quick Tour of Qt Creator
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
The labeled screenshot below shows some of the components of Qt Creator, in
|
|
|
|
\gui Edit mode.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-breakdown.png
|
|
|
|
|
2008-12-08 15:14:36 +01:00
|
|
|
\section1 The Mode Selectors
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
When working in Qt Creator, you can be in one of six modes: \bold Welcome,
|
|
|
|
\bold Edit, \bold Debug, \bold Projects, \bold Help, and \bold Output.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
Mode selectors allow you to quickly switch between tasks: Editing, browsing
|
|
|
|
the Qt Creator manual, setting up the build environment, etc. You can
|
2008-12-02 12:01:29 +01:00
|
|
|
activate a mode by either clicking on its mode selector, or using the
|
|
|
|
\l{keyboard-shortcuts}{corresponding shortcut}. Certain actions also
|
|
|
|
trigger a mode change, e.g., \gui{Debug}/\gui{Start Debugging} will switch
|
|
|
|
to the \gui Debug mode.
|
|
|
|
|
|
|
|
\list
|
|
|
|
|
|
|
|
\o \gui{Welcome Mode} - Displays a welcome screen allowing you to quickly
|
2008-12-11 11:20:25 +01:00
|
|
|
load recent sessions or individual projects. This is the mode you will see
|
|
|
|
if Qt Creator is run without command line switches.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\o \gui{Edit Mode} - Lets you edit both project and source files. A sidebar
|
|
|
|
on the left provides different views to navigate between files.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\o \gui{Debug Mode} - Provides various ways to inspect the state of the
|
2008-12-16 14:08:58 +01:00
|
|
|
program while debugging. See \l{Debugging With Qt Creator} for a hands-on
|
|
|
|
description of how to use this mode.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\o \gui{Projects Mode} - Lets you configure how projects can be built and
|
|
|
|
executed. Under the list of projects, there are tabs to configure the
|
|
|
|
build, run, and editor settings.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\o \gui{Help Mode} - Shows any documentation registered by Qt Assistant,
|
|
|
|
such as the Qt library and Qt Creator documentation.
|
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\o \gui{Output Mode} - Lets you examine various data in detail, for example
|
|
|
|
build issues as well as compile and application output. This information
|
|
|
|
is also available in the output panes.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
|
|
|
|
\section1 The Output Panes
|
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
The task pane in Qt Creator can display one of four different panes:
|
|
|
|
\gui{Build Issues}, \gui{Search Results}, \gui{Application Output}, and
|
2008-12-12 21:50:29 +01:00
|
|
|
\gui{Compile Output}. These panes are available in all modes.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\section2 Build Issues
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
The {Build Issues} pane provides a list of issues, e.g., error messages or
|
|
|
|
warnings that need to be fixed. It filters out irrelevant output from the
|
|
|
|
compiler and collects them in an organized way.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\image qtcreator-build-issues.png
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\section2 Search Results
|
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
The \gui{Search Results} pane displays the results for global searches such
|
|
|
|
as searching within a current document, files on disk, or all projects. In
|
|
|
|
the screenshot below, we searched for all occurrences of \c{textfinder}
|
|
|
|
within the \c{"/TextFinder"} folder.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-search-pane.png
|
|
|
|
|
|
|
|
\section2 Application Output
|
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
The \gui{Application Output} pane displays the status of the program when
|
|
|
|
it is executed and debug output, e.g., output from qDebug().
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-application-output.png
|
|
|
|
|
2008-12-11 11:20:25 +01:00
|
|
|
\section2 Compile
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-12 21:50:29 +01:00
|
|
|
The \gui{Compile Output} pane provides all the output from the compiler. In
|
|
|
|
other words, it is a more verbose version of information displayed in the
|
2008-12-11 11:20:25 +01:00
|
|
|
\gui{Build Issues}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-compile-pane.png
|
|
|
|
|
2009-01-12 16:29:51 +01:00
|
|
|
|
|
|
|
\section1 Session Management in Qt Creator
|
|
|
|
|
|
|
|
In Qt Creator, a session is a collection of loaded projects, opened files,
|
|
|
|
editor settings, and so on. When you run Qt Creator, you have a default
|
|
|
|
session. You can create a new session using the \gui{Session Manager...},
|
|
|
|
available in the \gui{File -> Session} menu.
|
|
|
|
|
2009-01-19 14:51:34 +01:00
|
|
|
|
|
|
|
\image qtcreator-session-manager.png
|
2009-01-19 13:21:22 +01:00
|
|
|
|
|
|
|
|
2009-01-12 16:29:51 +01:00
|
|
|
To switch between sessions, select \gui{File -> Session}. If you do not
|
|
|
|
create and select any session, Qt Creator will always use the default
|
|
|
|
session.
|
|
|
|
|
2009-01-19 14:51:34 +01:00
|
|
|
\image qtcreator-session-menu.png
|
2009-01-12 16:29:51 +01:00
|
|
|
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
\section1 Qt Help Integration
|
|
|
|
|
|
|
|
Qt Creator comes fully integrated with all of Qt's documentation and
|
|
|
|
examples via the Qt Help plugin. To view the documentation, you can switch
|
|
|
|
to the \gui{Help} mode. To obtain context sensitive help, move your text
|
|
|
|
cursor to a Qt class or function and press \key{F1}. The documentation
|
|
|
|
will be displayed within a panel on the right, as shown in the screenshot
|
|
|
|
below.
|
|
|
|
|
|
|
|
External Documentation provided by the user can be used to augment or
|
|
|
|
replace the documentation shipped with Qt Creator and Qt.
|
|
|
|
|
|
|
|
\image qtcreator-context-sensitive-help.png
|
|
|
|
|
|
|
|
|
|
|
|
\section1 Qt Designer Integration
|
|
|
|
|
|
|
|
Qt Creator is fully integrated with Qt Designer to help you design user
|
|
|
|
interface forms just like you would with the standalone version. The Qt
|
|
|
|
Designer integration also includes project management and code completion.
|
2008-12-12 20:11:04 +01:00
|
|
|
For more information on Qt Designer, you can refer to
|
2008-12-16 14:08:58 +01:00
|
|
|
\l{http://doc.trolltech.com/designer-manual.html}{The Designer Manual}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-formedit.png
|
|
|
|
|
|
|
|
|
|
|
|
\section1 Keyboard Navigation
|
|
|
|
|
2008-12-12 20:11:04 +01:00
|
|
|
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{Navigating Quickly Around Your Code with Locator}{navigation} shortcuts
|
|
|
|
are available to help speed up the process of developing your application.
|
2008-12-02 12:01:29 +01:00
|
|
|
*/
|
|
|
|
|
2009-01-14 16:02:50 +01:00
|
|
|
/*! \contentspage index.html
|
|
|
|
\previouspage creator-quick-tour.html
|
|
|
|
\page creator-code-editor.html
|
|
|
|
\nextpage creator-build-settings.html
|
|
|
|
|
|
|
|
\title The Code Editor
|
|
|
|
|
2009-02-04 15:57:02 +01:00
|
|
|
Qt Creator's code editor is designed to aid the developer to create, edit,
|
|
|
|
and navigate code. It is fully equipped with syntax highlighting, code
|
|
|
|
completion, context sensitive help, as well as inline error indicators
|
|
|
|
while you are typing. The screenshots below show the various dialogs within
|
|
|
|
which you can configure your editor.
|
2009-01-14 16:02:50 +01:00
|
|
|
|
2009-02-04 15:57:02 +01:00
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-texteditor-fonts.png
|
2009-02-26 17:02:15 +01:00
|
|
|
\i \inlineimage qtcreator-texteditor-behavior.png
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-texteditor-display.png
|
2009-02-04 15:57:02 +01:00
|
|
|
\i \inlineimage qtcreator-texteditor-completion.png
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
The table below lists keyboard shortcuts supported by the code editor.
|
2009-01-14 16:53:03 +01:00
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\i Block navigation
|
2009-01-16 16:39:08 +01:00
|
|
|
\i To navigate between blocks, e.g., from one \bold{\{} to another
|
|
|
|
\bold{\}} , use \key{Ctrl+[} and \key{Ctrl+]}.
|
2009-01-14 16:53:03 +01:00
|
|
|
\row
|
|
|
|
\i Block selection
|
|
|
|
\i To select a current block, use \key{Ctrl+U}. Pressing
|
|
|
|
\key{Ctrl+U} again extends the selection to the parent block.
|
|
|
|
To deselect, use \key{Ctrl+Shift+U}.
|
|
|
|
\row
|
|
|
|
\i Moving lines up and down
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Use \key{Ctrl+Shift+Up} and \key{Ctrl+Shift+Down}
|
2009-01-14 16:53:03 +01:00
|
|
|
|
|
|
|
\row
|
|
|
|
\i Completion
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Use \key{Ctrl+Space}
|
2009-01-14 16:53:03 +01:00
|
|
|
|
|
|
|
\row
|
2009-01-15 13:07:25 +01:00
|
|
|
\i Indenting Blocks
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Use \key{Ctrl+I}
|
2009-02-04 15:57:02 +01:00
|
|
|
|
|
|
|
\row
|
|
|
|
\i Collapse
|
|
|
|
\i Use \key{Ctrl+\<}
|
|
|
|
|
2009-01-14 16:53:03 +01:00
|
|
|
\row
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Commenting or uncommenting blocks
|
|
|
|
\i Use \key{Ctrl+\/}
|
2009-01-15 13:07:25 +01:00
|
|
|
|
2009-02-04 15:57:02 +01:00
|
|
|
\row
|
|
|
|
\i Delete a line
|
|
|
|
\i Use \key{Shift+Del}
|
|
|
|
|
2009-01-15 13:07:25 +01:00
|
|
|
\row
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Switch between header file and source file
|
2009-01-16 15:35:49 +01:00
|
|
|
\i Use \key{F4}.
|
|
|
|
|
|
|
|
\row
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Increasing and decreasing font size
|
2009-01-16 15:35:49 +01:00
|
|
|
\i Use \key{Ctrl+Scroll Wheel}
|
|
|
|
|
|
|
|
\row
|
2009-02-04 12:02:56 +01:00
|
|
|
\i Follow symbols under the cursor
|
2009-01-16 15:35:49 +01:00
|
|
|
\i Use \key{F2} and \key{Shift+F2}. This feature works with
|
|
|
|
namespaces, classes, methods, variables, include statements,
|
|
|
|
and macros.
|
2009-01-14 16:53:03 +01:00
|
|
|
|
2009-02-04 15:57:02 +01:00
|
|
|
\row
|
|
|
|
\i Switch to an external editor
|
|
|
|
\i Select \gui{Open in external editor} from the
|
|
|
|
\gui{Edit -> Advanced} menu.
|
|
|
|
\endtable
|
2009-01-14 16:02:50 +01:00
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
2009-01-16 16:02:14 +01:00
|
|
|
\previouspage creator-code-editor.html
|
2008-12-02 12:01:29 +01:00
|
|
|
\page creator-build-settings.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-version-management.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\title Build Settings
|
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
2008-12-12 20:11:04 +01:00
|
|
|
\i \note Qt Creator currently supports \c qmake only. \c Makefile
|
|
|
|
and \c CMake support is currently unavailable.
|
2008-12-02 12:01:29 +01:00
|
|
|
\endtable
|
|
|
|
|
2008-12-12 20:11:04 +01:00
|
|
|
To modify the build settings of your project, switch to the \gui{Projects}
|
|
|
|
mode using the mouse or with \key{Ctrl+4}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-15 16:26:18 +01:00
|
|
|
\image qtcreator-buildsettingstab.png
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Action items to create, clone, or delete build configurations can be found
|
2008-12-15 16:26:18 +01:00
|
|
|
at the bottom of the dialog. You can have as many build configurations as
|
2008-12-12 20:11:04 +01:00
|
|
|
needed. By default Qt Creator creates a \bold{debug} and \bold{release}
|
|
|
|
build configuration. Both these configurations use the
|
2008-12-02 12:01:29 +01:00
|
|
|
\l{glossary-default-qt}{Default Qt Version}.
|
|
|
|
|
|
|
|
In the tree on the left, a list of build configurations and their settings
|
2008-12-15 16:26:18 +01:00
|
|
|
are displayed. The screenshot above shows the \bold{debug} and
|
2008-12-02 12:01:29 +01:00
|
|
|
\bold{release} configurations and their corresponding settings:
|
|
|
|
\bold{Build Environment} and \bold{Build Steps}.
|
|
|
|
|
|
|
|
When you select a build configuration in the tree, a configuration page for
|
|
|
|
general build settings will be displayed. Here you can specify which
|
|
|
|
\l{glossary-project-qt}{Qt version} to use to build your project, whether
|
2008-12-15 16:26:18 +01:00
|
|
|
to \l{glossary-shadow-build}{shadow build} the project.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-buildenvironment.png
|
|
|
|
|
|
|
|
In the \bold{Build Environment} page you can specify the environment used
|
|
|
|
for building. 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 will automatically add the necessary environment
|
|
|
|
variables.
|
|
|
|
|
|
|
|
\image qtcreator-buildsteps.png
|
|
|
|
|
|
|
|
The build system of Qt Creator is built on top of \c qmake and \c make. The
|
|
|
|
settings for \c qmake and \c make can be changed in the
|
|
|
|
\bold{Build Settings} page. Qt Creator will run the make command using the
|
|
|
|
correct Qt version.
|
|
|
|
|
2008-12-15 16:26:18 +01:00
|
|
|
\note The \bold{Gdb Macros Build} step builds a small library along with your
|
|
|
|
project that is used for the custom display of Qt and STL objects in the
|
|
|
|
integrated debugger. The library is created and built in a "qtc-gdbmacros"
|
|
|
|
subfolder of your project's main directory, and loaded dynamically into your
|
|
|
|
application if you run it in the debugger. If the
|
2008-12-02 12:01:29 +01:00
|
|
|
debugging helper seems to break your build or your application, you can
|
2008-12-15 16:26:18 +01:00
|
|
|
remove the build step. You will still be able to debug applications, but the
|
|
|
|
contents of Qt and STL data types will not be displayed properly.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-01-16 17:36:17 +01:00
|
|
|
\section1 Dependencies
|
|
|
|
|
|
|
|
If you have multiple projects loaded in your session, you can configure
|
|
|
|
dependencies between them. This will affect the build order of your
|
|
|
|
projects. To do this, go the the \bold{Dependencies} tab after selecting
|
|
|
|
the project for which you want to configure the dependencies, and then use
|
|
|
|
the checkboxes to check which of the other projects is a dependency.
|
|
|
|
|
2009-01-14 16:02:50 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-build-settings.html
|
|
|
|
\page creator-version-management.html
|
|
|
|
\nextpage creator-creating-project.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-01-14 16:02:50 +01:00
|
|
|
\title Qt Version Management
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Qt Creator allows you to use multiple versions of Qt installed on your hard
|
|
|
|
disk and switch between them easily.
|
|
|
|
|
|
|
|
Qt Creator automatically detects if \c qmake is in the environment variable
|
|
|
|
\c PATH. This \l{glossary-system-qt}{version of Qt} is referred to as
|
2009-02-26 17:02:15 +01:00
|
|
|
\bold{Auto-detected Qt}. If you intend to use only one version of Qt - it is
|
2008-12-02 12:01:29 +01:00
|
|
|
already in your path and correctly set up for command line usage - you do
|
|
|
|
not need to manually configure your Qt version.
|
|
|
|
|
|
|
|
Otherwise, you can add your Qt version in
|
|
|
|
\gui{Tools -> Options... -> Qt Versions}. If you are on the Windows
|
|
|
|
platform and use MinGW to compile Qt, you need to tell Qt Creator where
|
|
|
|
MinGW is installed. This is done by setting the \gui{MinGW Directory}
|
|
|
|
under \gui{Tools -> Options... -> Qt4 -> Qt Versions -> MinGw Directory}.
|
|
|
|
If your Qt version is compiled with Microsoft Visual C++'s compiler, Qt
|
|
|
|
Creator will automatically set the correct environment variables for
|
|
|
|
compilation.
|
|
|
|
|
|
|
|
\note By default projects are compiled with the
|
|
|
|
\l{glossary-default-qt}{default Qt version}. You can override this in the
|
|
|
|
\gui{Build Configuration}.
|
|
|
|
*/
|
|
|
|
|
2008-12-15 14:29:59 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\previouspage creator-version-management.html
|
2008-12-02 12:01:29 +01:00
|
|
|
\page creator-creating-project.html
|
|
|
|
\nextpage creator-writing-program.html
|
|
|
|
|
|
|
|
\title Creating a Project in Qt Creator
|
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-new-project.png
|
|
|
|
\i \bold{Creating a New Project}
|
|
|
|
|
2008-12-16 08:53:01 +01:00
|
|
|
To create a new project, select \gui{New Project} from the \gui{File} menu.
|
|
|
|
You can create one of the following three projects:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-16 08:53:01 +01:00
|
|
|
\list
|
|
|
|
\o Qt4 Console Application
|
|
|
|
\o Qt4 Gui Application
|
|
|
|
\o C++ Library
|
|
|
|
\endlist
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-16 08:53:01 +01:00
|
|
|
In this example, we select a \e{Qt4 Gui Application} and click \gui{OK}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-intro-and-location.png
|
2009-01-12 09:36:01 +01:00
|
|
|
\i \bold{Setting the Project name and location}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Next, we set the project's name and its path. Click on the \gui{...}
|
|
|
|
button to browse and select your path.
|
|
|
|
|
|
|
|
Ideally, the path should not contain spaces or special characters.
|
|
|
|
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-select-modules.png
|
|
|
|
\i \bold{Selecting The Necessary Qt Modules}
|
|
|
|
|
|
|
|
Click on the check boxes of each Qt Module you would like to include in
|
|
|
|
your project.
|
|
|
|
|
|
|
|
Since we started a Qt4 Gui Application, the Core and Gui modules are
|
|
|
|
set, but you are free to add more.
|
|
|
|
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-class-info.png
|
|
|
|
\i \bold{Specifying Class Information}
|
|
|
|
|
2008-12-16 12:24:03 +01:00
|
|
|
Specify the name of the class you would like to create. The
|
2008-12-02 12:01:29 +01:00
|
|
|
\e{Header file}, \e{Source file} and \e{Form file} fields will update
|
2008-12-12 20:11:04 +01:00
|
|
|
automatically according to your choice of class name.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
You also have to select the base class for your class, either a
|
2008-12-16 12:24:03 +01:00
|
|
|
QWidget, QDialog or QMainWindow, from the drop down box.
|
|
|
|
|
|
|
|
\row
|
|
|
|
\i \inlineimage qtcreator-new-project-summary.png
|
|
|
|
\i \bold{Creating the Project}
|
|
|
|
|
|
|
|
Finally, review the files that will be created for you. Click
|
2008-12-02 12:01:29 +01:00
|
|
|
\gui{Done} and your project will be generated.
|
|
|
|
|
|
|
|
\endtable
|
|
|
|
*/
|
|
|
|
|
2008-12-15 14:29:59 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-creating-project.html
|
|
|
|
\page creator-writing-program.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-version-control.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\title Writing a Simple Program with Qt Creator
|
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\o \note This tutorial assumes that the user has experience writing
|
|
|
|
basic Qt applications, designing user interfaces with Qt Designer
|
|
|
|
and and using the Qt Resource System.
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
|
|
In this example, we will describe the steps involve in using Qt Creator
|
|
|
|
to create a small Qt program, Text Finder. Inspired by the QtUiTools'
|
|
|
|
\l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder}
|
|
|
|
example, we will write a similar but simplified version of it, as shown
|
|
|
|
below.
|
|
|
|
|
|
|
|
\image qtcreator-textfinder-screenshot.png
|
|
|
|
|
|
|
|
\section1 Setting Up Your Environment
|
|
|
|
|
|
|
|
Once you have installed Qt Creator, it will automatically detect if Qt's
|
|
|
|
location is in your \c PATH variable. If Qt's location is not in your
|
|
|
|
\c PATH, you can set it in one of the following ways, depending on your
|
|
|
|
platform:
|
|
|
|
|
|
|
|
\list
|
|
|
|
\o On Windows and Linux: in the \gui{Tools} menu, under \gui{Options}.
|
|
|
|
\o On Mac OS X: in \gui{Preferences}, under \gui{Qt4}.
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
\note If Qt was compiled with Visual Studio, all environment variables set
|
|
|
|
in Visual Studio will be added to Qt Creator as well.
|
|
|
|
|
|
|
|
\section1 Setting Up The Project
|
|
|
|
|
|
|
|
We begin with a Qt4 Gui Application project generated by Qt Creator. The
|
|
|
|
\l{Creating a Project in Qt Creator} document describes this process in
|
2009-01-12 12:38:54 +01:00
|
|
|
detail. Remember to select QWidget as the Text Finder's base class. If
|
|
|
|
your project is not yet loaded, you can load it by selecting \gui{Open}
|
|
|
|
from the \gui{File} menu.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-01-12 12:38:54 +01:00
|
|
|
In your project you will have the following files:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\list
|
|
|
|
\o \c{textfinder.h}
|
|
|
|
\o \c{textfinder.cpp}
|
|
|
|
\o \c{main.cpp}
|
|
|
|
\o \c{textfinder.ui}
|
|
|
|
\o \c{textfinder.pro}
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
The \c{.h} and \c{.cpp} files come with the necessary boiler plate code;
|
|
|
|
the \c{.pro} file is also complete.
|
|
|
|
|
|
|
|
\section1 Filling In The Missing Pieces
|
|
|
|
|
|
|
|
We will begin by designing the user interface and then move on to filling
|
|
|
|
in the missing code. Finally, we will add the find functionality.
|
|
|
|
|
|
|
|
\section2 Designing the User Interface
|
|
|
|
|
|
|
|
To begin designing the user interface, double-click on the
|
|
|
|
\c{textfinder.ui} file in your \gui{Project Explorer}. This will launch the
|
|
|
|
integrated Qt Designer.
|
|
|
|
|
|
|
|
\image qtcreator-textfinder-ui.png
|
|
|
|
|
2008-12-16 14:08:58 +01:00
|
|
|
Design the form above using a \l{http://doc.trolltech.com/qlabel.html}
|
2009-03-24 17:16:06 +01:00
|
|
|
{QLabel}, \l{http://doc.trolltech.com/qlinedit.html}{QLineEdit}
|
|
|
|
(named lineEdit), \l{http://doc.trolltech.com/qpushbutton.html}{QPushButton}
|
|
|
|
(named findButton), and a
|
|
|
|
\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit} (named textEdit).
|
|
|
|
We recommend that
|
2008-12-16 14:08:58 +01:00
|
|
|
you use a QGridLayout to lay out the
|
|
|
|
\l{http://doc.trolltech.com/qlabel.html}{QLabel},
|
|
|
|
\l{http://doc.trolltech.com/qlinedit.html}{QLineEdit} and
|
|
|
|
\l{http://doc.trolltech.com/qpushbutton.html}{QPushButton}. The
|
|
|
|
\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit} can then be added to
|
|
|
|
a \l{http://doc.trolltech.com/qvboxlayout.html}{QVBoxLayout}, along with
|
|
|
|
the \l{http://doc.trolltech.com/qgridlayout.html}{QGridLayout}. If you are
|
|
|
|
new to designing forms with \QD, you can take a look at the
|
2008-12-02 12:01:29 +01:00
|
|
|
\l{http://doc.trolltech.com/designer-manual.html}{Designer Manual}.
|
|
|
|
|
|
|
|
\section2 The Header File
|
|
|
|
|
|
|
|
The \c{textfinder.h} file already has the necessary includes, a
|
|
|
|
constructor, a destructor, and the \c{Ui} object. We need to add a private
|
|
|
|
slot, \c{on_findButton_clicked()}, to carry out our find operation. We
|
|
|
|
also need a private function, \c{loadTextFile()}, to read and display the
|
2008-12-16 14:08:58 +01:00
|
|
|
contents of our input text file in the
|
|
|
|
\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit}. This is done with
|
|
|
|
the following code:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\code
|
|
|
|
private slots:
|
|
|
|
void on_findButton_clicked();
|
|
|
|
|
|
|
|
private:
|
2009-03-24 16:56:55 +01:00
|
|
|
Ui::TextFinder *ui;
|
2008-12-02 12:01:29 +01:00
|
|
|
void loadTextFile();
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
\note The \c{Ui::Form} object is already provided.
|
|
|
|
|
|
|
|
\section2 The Source File
|
|
|
|
|
|
|
|
Now that our header file is complete we move on to our source file,
|
|
|
|
\c{textfinder.cpp}. We begin by filling in the functionality to load a
|
|
|
|
text file. The code snippet below describes this:
|
|
|
|
|
2009-03-24 17:19:24 +01:00
|
|
|
\quotefromfile textfinder.cpp
|
|
|
|
\skipto TextFinder::loadTextFile
|
|
|
|
\printuntil }
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-16 14:08:58 +01:00
|
|
|
Basically, we 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
|
2009-03-24 17:19:24 +01:00
|
|
|
\l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()}
|
|
|
|
which requires adding the following additional #includes to textfinder.cpp:
|
|
|
|
\code
|
|
|
|
#include <QtCore/QFile>
|
|
|
|
#include <QtCore/QTextStream>
|
|
|
|
\endcode
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
For the \c{on_findButton_clicked()} slot, we extract the search string and
|
2008-12-16 14:08:58 +01:00
|
|
|
use the \l{http://doc.trolltech.com/qtextedit.html#find}{find()} function
|
|
|
|
to look for the search string within the text file. The code snippet below
|
|
|
|
further describes it:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-03-24 17:19:24 +01:00
|
|
|
\quotefromfile textfinder.cpp
|
|
|
|
\skipto on_findButton_clicked
|
|
|
|
\printuntil }
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Once we have both these functions complete, we call \c{loadTextFile()} in
|
|
|
|
our constructor.
|
|
|
|
|
2009-03-24 17:19:24 +01:00
|
|
|
\quotefromfile textfinder.cpp
|
|
|
|
\skipto TextFinder::TextFinder
|
|
|
|
\printuntil }
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
The \c{on_findButton_clicked()} slot will be called automatically due to
|
|
|
|
this line of code:
|
|
|
|
|
|
|
|
\code
|
2009-03-24 17:35:59 +01:00
|
|
|
QMetaObject::connectSlotsByName(TextFinderClass);
|
2008-12-02 12:01:29 +01:00
|
|
|
\endcode
|
|
|
|
|
|
|
|
in the uic generated \c{ui_textfinder.h} file.
|
|
|
|
|
|
|
|
\section2 The Resource File
|
|
|
|
|
|
|
|
We require a resource file (\c{.qrc}) within which we will embed the input
|
|
|
|
text file. This can be any \c{.txt} file with a paragraph of text. To add
|
|
|
|
a resource file, right click on \gui{Resource Files} in the
|
|
|
|
\gui{Project Explorer} and select \gui{Add New File...}. You will see the
|
|
|
|
wizard dialog displayed below.
|
|
|
|
|
|
|
|
\image qtcreator-add-resource-wizard.png
|
|
|
|
|
|
|
|
Enter "textfinder" in the \gui{Name} field and use the given \gui{Path}.
|
2008-12-16 14:48:15 +01:00
|
|
|
Then, click \gui{Continue}.
|
|
|
|
|
|
|
|
\image qtcreator-add-resource-wizard2.png
|
|
|
|
|
|
|
|
On this page you can choose to which project you want to add the new file.
|
|
|
|
Make sure that \gui{Add to Project} is checked and
|
|
|
|
"TextFinder" is selected as the \gui{Project}, and click
|
|
|
|
\gui{Done}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Your resource file will now be displayed with the Resource Editor. Click
|
|
|
|
on the \gui{Add} drop down box and select \gui{Add Prefix}. The prefix we
|
|
|
|
require is just a slash (\c{/}). Click \gui{Add} again but this time,
|
|
|
|
select \gui{Add File}. Locate the text file you are going to use, we use
|
|
|
|
\c{input.txt}.
|
|
|
|
|
|
|
|
\image qtcreator-add-resource.png
|
|
|
|
|
|
|
|
The screenshot above shows what you can expect to see once you have added
|
|
|
|
the resource file successfully.
|
|
|
|
|
|
|
|
\section1 Compiling and Running Your Program
|
|
|
|
|
|
|
|
Now that you have all the necessary files, you can compile your program by
|
|
|
|
clicking on the
|
|
|
|
\inlineimage qtcreator-run.png
|
|
|
|
button.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2008-12-15 14:29:59 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-writing-program.html
|
2009-01-15 13:07:25 +01:00
|
|
|
\page creator-version-control.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-navigation.html
|
2009-01-15 13:07:25 +01:00
|
|
|
|
|
|
|
\title Qt Creator and Version Control Systems
|
|
|
|
|
|
|
|
\table
|
|
|
|
\caption Version control systems supported by Qt Creator
|
|
|
|
\row
|
|
|
|
\i \bold{git}
|
|
|
|
\i \l{http://git-scm.com/}
|
|
|
|
\row
|
|
|
|
\i \bold{Subversion}
|
|
|
|
\i \l{http://subversion.tigris.org/}
|
|
|
|
\row
|
|
|
|
\i \bold{Perforce}
|
|
|
|
\i \l{http://www.perforce.com}
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
|
|
\section1 Setup
|
|
|
|
|
|
|
|
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. You can
|
2009-02-27 11:59:45 +01:00
|
|
|
specify the path to the command line client's executable in the settings
|
2009-01-15 13:07:25 +01:00
|
|
|
pages that can be found under \gui{Options...} in the \gui{Tools} menu.
|
|
|
|
|
|
|
|
|
2009-01-15 13:50:22 +01:00
|
|
|
\section1 Usage
|
|
|
|
|
2009-03-10 15:31:52 +01:00
|
|
|
You can find the version control menu entries in a sub-menu of the
|
2009-01-15 13:50:22 +01:00
|
|
|
\gui{Tools} menu. The version control system displayed here is the system
|
|
|
|
that manages the current project.
|
|
|
|
|
|
|
|
Each version control system adds a pane to the \gui{Application Output}
|
|
|
|
panes within which it will log the commands it executes, prepended by a
|
|
|
|
timestamp and the relevant output.
|
|
|
|
|
|
|
|
\image qtcreator-vcs-pane.png
|
|
|
|
|
|
|
|
|
|
|
|
\section2 Addings Files
|
|
|
|
|
|
|
|
When you create a new file or a new project, the wizards will display page
|
|
|
|
requesting whether the files should be added to a version control system.
|
|
|
|
This depends on whether 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 also
|
|
|
|
add files later on 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 - comparing with the latest version stored in the
|
|
|
|
repository and displaying 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 will open an editor
|
|
|
|
displaying the file, scrolled to the line in question.
|
|
|
|
|
|
|
|
\image qtcreator-vcs-diff.png
|
|
|
|
|
|
|
|
|
|
|
|
\section2 Viewing Versioning History and Change Details
|
|
|
|
|
|
|
|
The versioning history of a file can be displayed by selecting the
|
2009-01-16 16:02:14 +01:00
|
|
|
\gui{Log} (for \bold{git}) or \gui{Filelog} (for \bold{Perforce} and
|
|
|
|
\bold{Subversion}) option. Typically, the log output will contain the
|
2009-01-15 14:30:18 +01:00
|
|
|
date, the commit message, and a change or revision identifier. If you
|
|
|
|
click on the identifier, a description of the change including the diff
|
|
|
|
will be displayed.
|
|
|
|
|
|
|
|
\image qtcreator-vcs-log.png
|
2009-01-15 16:04:52 +01:00
|
|
|
\image qtcreator-vcs-describe.png
|
2009-01-15 14:30:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
\section2 Annotating Files
|
|
|
|
|
|
|
|
Annotation views are obtained by selecting \gui{Annotate} or \gui{Blame}.
|
|
|
|
This will display 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.
|
|
|
|
|
|
|
|
|
|
|
|
\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 will
|
|
|
|
display 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 \gui{Commit} to start committing. In addition,
|
|
|
|
there is a \gui{Diff selected} 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 Menu Entries Specific to git
|
|
|
|
|
|
|
|
The git sub-menu contains additional entries:
|
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\i \gui{Stash}
|
|
|
|
\i Stash local changes prior to executing a \bold{pull}.
|
|
|
|
\row
|
2009-01-15 15:57:07 +01:00
|
|
|
\i \gui{Pull}
|
|
|
|
\i Pull changes from the remote repository. If there are locally
|
|
|
|
modified files, you will be 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, simply double-click on it. Double-clicking on a remote
|
|
|
|
branch will first create a local branch with the same name that
|
|
|
|
tracks the remote branch, and then switch to it.
|
|
|
|
|
|
|
|
\image qtcreator-vcs-gitbranch.png
|
2009-01-15 14:30:18 +01:00
|
|
|
\endtable
|
2009-01-15 13:50:22 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
2009-02-27 11:59:45 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-version-control.html
|
|
|
|
\page creator-navigation.html
|
|
|
|
\nextpage creator-debugging.html
|
|
|
|
|
|
|
|
\title Navigating Quickly Around Your Code with Locator
|
|
|
|
|
|
|
|
With Qt Creator, navigating to different locations in your project or on
|
|
|
|
your disk, e.g., files, classes, methods, etc., is trivial using
|
|
|
|
\gui Locator -- a smart line edit at the bottom left of Qt Creator's
|
|
|
|
window.
|
|
|
|
|
|
|
|
\image qtcreator-locator.png
|
|
|
|
|
|
|
|
Suppose you would like to open your project's \c{main.cpp} file, click on
|
|
|
|
\gui Locator or use \key{Ctrl+K}, type in the file name and then press
|
|
|
|
\key Return. The file will be opened in the editor. You can also type
|
|
|
|
part of a file name and use wildcard characters \c{*} and \c{?} to match
|
|
|
|
\e{any} number of \e{any} characters. A list of all files matching your
|
|
|
|
criteria will be displayed.
|
|
|
|
|
|
|
|
\gui Locator not only allows you to navigate files on disk but also other
|
|
|
|
"locations", which are organized with \bold{Filters}. Currently there are
|
|
|
|
filters for:
|
|
|
|
|
|
|
|
\list
|
|
|
|
\o files anywhere on your hard disk (browsing through the file system),
|
|
|
|
\o files from a subdirectory structure defined by you,
|
|
|
|
\o files mentioned in your \c{.pro} files, such as source, header,
|
|
|
|
resource, and \c{.ui} files,
|
|
|
|
\o any open document,
|
|
|
|
\o class and method definitions in your project or anywhere referenced
|
|
|
|
from your project,
|
|
|
|
\o help topics, including Qt's documentation, and,
|
|
|
|
\o a specific line in the document displayed on your editor,
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
|
|
|
|
Some of these filters require you to activate them by typing an assigned
|
|
|
|
\e prefix. This prefix is usually a single character followed by
|
|
|
|
\key{Space}. For example, to jump to the definition of the class
|
|
|
|
\l{http://doc.trolltech.com/qdatastream.html}{QDataStream}, type:
|
|
|
|
\key{Ctrl+K} to activate \gui Locator. Then type colon (\key{:}) followed
|
|
|
|
by \key{Space} and the class name.
|
|
|
|
|
|
|
|
|
|
|
|
Below is a full list of \l{http://doc.trolltech.com/qdatastream.html}
|
|
|
|
{QDataStream} related output:
|
|
|
|
|
|
|
|
\image qtcreator-navigate-popup.png
|
|
|
|
|
|
|
|
|
|
|
|
Filters can be added to provide quick navigation around files in a
|
|
|
|
subdirectory structure defined by you. This way, you can acccess files you
|
|
|
|
need, that are not directly mentioned in your project. Click on
|
|
|
|
\image qtcreator-locator-magnify.png
|
|
|
|
and choose \gui{Configure...} from the menu displayed.
|
|
|
|
|
|
|
|
\image qtcreator-locator-customize.png
|
|
|
|
|
|
|
|
This then displays the \gui Preferences dialog (\gui Options on Mac Os X)
|
|
|
|
for navigation filters. Click \gui Add to create a new filter. In the
|
|
|
|
\gui{Filter Configuration} dialog below, give your filter a name, select
|
|
|
|
your preferred directories, set file patterns with a comma separated list,
|
|
|
|
and specify a prefix string.
|
|
|
|
|
|
|
|
\image qtcreator-navigate-customfilter.png
|
|
|
|
|
|
|
|
After closing this dialog, \gui Locator will search the directories you
|
|
|
|
selected for files matching your file patterns, and the information will be
|
|
|
|
cached. Click \gui Refresh from the menu above to update the cached
|
|
|
|
information.
|
|
|
|
|
|
|
|
The following table lists the filters currently available:
|
|
|
|
|
|
|
|
\table
|
|
|
|
\header
|
|
|
|
\o Function
|
|
|
|
\o Key Combination
|
|
|
|
\o Screenshot
|
|
|
|
\row
|
|
|
|
\o Go to a line in the current document
|
|
|
|
\o Ctrl+K, l, Space, and the line number
|
|
|
|
\o \image qtcreator-locator-line.png
|
|
|
|
\row
|
|
|
|
\o Go to a symbol definition
|
|
|
|
\o Ctrl+K, :, Space, and the function name
|
|
|
|
\o \image qtcreator-locator-symbols.png
|
|
|
|
\row
|
|
|
|
\o Go to a help topic
|
|
|
|
\o Ctrl+K, ?, Space, and the topic
|
|
|
|
\o \image qtcreator-locator-help.png
|
|
|
|
\row
|
|
|
|
\o Go to an opened document
|
|
|
|
\o Ctrl+K, o, Space, and the document name.
|
|
|
|
\o \image qtcreator-locator-opendocs.png
|
|
|
|
\row
|
|
|
|
\o Go to a file in the file system (browse the file system)
|
|
|
|
\o Ctrl+K, f, Space, and the file name.
|
|
|
|
\o \image qtcreator-locator-filesystem.png
|
|
|
|
\row
|
|
|
|
\o Go to a file in any project currently loaded
|
|
|
|
\o Ctrl+K, a, Space, and the function name.
|
|
|
|
\o \image qtcreator-locator-files.png
|
|
|
|
\row
|
|
|
|
\o Go to a file in the current project
|
|
|
|
\o Ctrl+K, p, Space, and the function name.
|
|
|
|
\o \image qtcreator-locator-current-project.png
|
|
|
|
\row
|
|
|
|
\o Go to a class definition
|
|
|
|
\o Ctrl+K, c, Space, and the class name.
|
|
|
|
\o \image qtcreator-locator-classes.png
|
|
|
|
\row
|
|
|
|
\o Go to a method definition
|
|
|
|
\o Ctrl+K, m, Space, and the class name.
|
|
|
|
\o \image qtcreator-locator-methods.png
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
\note By default, if you press \key{Ctrl+K} and do not use a prefix to
|
|
|
|
specify a filter, three filters will be enabled: \c{o}, \c{l}, and \c{a}.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-navigation.html
|
|
|
|
\page creator-debugging.html
|
|
|
|
\nextpage creator-tips.html
|
|
|
|
|
2008-12-08 15:14:36 +01:00
|
|
|
\title Debugging with Qt Creator
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
|
|
|
\i \note Qt Creator's debugger integration currently does not
|
|
|
|
support debugging applications created with the Microsoft Visual
|
|
|
|
Studio Compiler.
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
Qt Creator does not have its own debugger. Instead, it provides a graphical
|
|
|
|
frontend to the GNU Symbolic Debugger (gdb). This frontend allows you to
|
|
|
|
step through a program line-by-line or instruction-by-instruction,
|
|
|
|
interrupt running programs, set breakpoints, examine the contents of the
|
|
|
|
call stack, local and global variables, etc.
|
|
|
|
|
|
|
|
|
|
|
|
Within Qt Creator, the raw information provided by gdb is displayed in a
|
|
|
|
clear and concise manner, simplifying the process of debugging.
|
|
|
|
|
|
|
|
In addition to generic IDE functionality: stack view, views for locals and
|
|
|
|
watchers, registers, etc, Qt Creator comes with additional features to make
|
|
|
|
debugging Qt-based applications easy. The debugger frontend knows about the
|
|
|
|
internal layout of several Qt classes such as QString, the QTL containers,
|
|
|
|
and most importantly QObject (and classes derived from it). Therefore, it
|
|
|
|
is able to present Qt's data clearly.
|
|
|
|
|
|
|
|
|
|
|
|
\section1 Interacting 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.
|
|
|
|
|
2008-12-16 18:39:10 +01:00
|
|
|
\image qtcreator-debug-view.png
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
Here, you can lock or unlock the location of your views as well as display
|
|
|
|
or hide them. Among the views you can display are \gui Breakpoints,
|
|
|
|
\gui Disassembler, \gui Modules, \gui Registers, \gui Gdb, \gui Stack, and
|
|
|
|
\gui Thread. The position of your dock widgets will be saved for future
|
|
|
|
sessions.
|
|
|
|
|
|
|
|
|
|
|
|
\section2 Breakpoints
|
|
|
|
|
|
|
|
Breakpoints are shown in the \gui{Breakpoints} view which is enabled by
|
|
|
|
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, stops the program being debugged and passing the control to
|
|
|
|
the user. The user is then free to examine the state of the interrupted
|
|
|
|
program, or continue execution line-by-line or continuously.
|
|
|
|
|
|
|
|
Typically, breakpoints are associated with a source code file and line, or
|
|
|
|
the start of a function -- both 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
|
2008-12-08 15:14:36 +01:00
|
|
|
left margin or press \key F9 (\key F8 for Mac OS X).
|
|
|
|
\o At a function that you want the program to stop -- enter the
|
|
|
|
function's name in \gui{Set Breakpoint at Function...} under the
|
2008-12-02 12:01:29 +01:00
|
|
|
\gui Debug menu.
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
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 Running
|
|
|
|
|
|
|
|
To start a program under the debugger's control, select the \gui{Debug}
|
|
|
|
menu and \gui{Start Debugging}, or simply press \key{F5}. Qt Creator then
|
|
|
|
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 will take 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 as usual; performance-wise as
|
|
|
|
well. 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.
|
|
|
|
|
|
|
|
\omit (and, if set, its associated conditions are met). \endomit
|
|
|
|
|
|
|
|
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 execute a function or a sub-function, use
|
|
|
|
\key F11. Alternatively, you can continue running the program with \key F5.
|
2008-12-12 20:11:04 +01:00
|
|
|
It is possible to continue executing your program until the current
|
|
|
|
function completes or jump to an arbitrary position in the current
|
|
|
|
function.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
|
|
|
|
\section2 Stack
|
|
|
|
|
|
|
|
When the program being debugged is stopped, Qt Creator displays the nested
|
|
|
|
function calls leading to the current position as a \e call stack trace.
|
2008-12-08 15:14:36 +01:00
|
|
|
This stack trace is built up from \e{call stack frames}, each representing a
|
2008-12-02 12:01:29 +01:00
|
|
|
particular function. For each function, Qt Creator will try to retrieve the
|
|
|
|
file name and line number of the corresponding source files. This data is
|
|
|
|
shown in the \gui Stack view.
|
|
|
|
|
2008-12-16 18:39:10 +01:00
|
|
|
\image qtcreator-debug-stack.png
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
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 will have corresponding source locations. These frames will be
|
|
|
|
greyed out in the \gui Stack view.
|
|
|
|
|
|
|
|
If you click on a frame with a known source location, the text editor will
|
|
|
|
jump to the corresponding location and update the \gui{Locals and Watchers}
|
|
|
|
view, making it seem like the program stopped before entering the function.
|
|
|
|
|
|
|
|
|
|
|
|
\section2 Threads
|
|
|
|
|
2008-12-08 15:14:36 +01:00
|
|
|
If a multi-threaded program is stopped, 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 will adjust itself
|
|
|
|
accordingly.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
|
|
|
|
\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 will be displayed as
|
|
|
|
"expandable" in the view. C lick 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:}
|
2008-12-02 13:06:53 +01:00
|
|
|
|
|
|
|
\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.
|
|
|
|
|
|
|
|
\i The debug information provided by gcc does not include enough
|
|
|
|
information about the time when a variable is initialized.
|
|
|
|
Qt Creator therefore can not tell whether the contents of a
|
|
|
|
local variable contains "real data", or "initial noise". If a
|
|
|
|
QObject appears uninitialized, its value will be reported as
|
|
|
|
"out of scope". However, not all uninitialized objects can be
|
|
|
|
recognized as such.
|
2008-12-02 12:01:29 +01:00
|
|
|
\endtable
|
|
|
|
|
2008-12-02 13:06:53 +01:00
|
|
|
|
|
|
|
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, select \gui{Use Custom
|
|
|
|
Display for Qt Objects} from the \gui Debug menu.The
|
|
|
|
\gui{Locals and Watchers} view will be 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 will see a list of children,
|
|
|
|
signals and slots.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
Similarly, instead of displaying many pointers and integers, Qt Creator's
|
|
|
|
debugger will display the contents of a QHash or QMap in an orderly manner.
|
|
|
|
Also, the debugger will display access data for QFileInfo and provide
|
|
|
|
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 stopped. To do so, click on the \gui Value column, modify the value
|
|
|
|
with the inplace editor, and hit \key Enter (or \key Return).
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
|
|
|
|
\section2 Modules
|
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
By default, the \gui Modules view is hidden as it is only useful with the
|
2008-12-12 20:11:04 +01:00
|
|
|
experimental delayed loaing of debug information feature. You can turn
|
|
|
|
this feature on by selecting \gui{Fast Debugger Start}
|
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
|
2008-12-12 20:11:04 +01:00
|
|
|
With this feature, debug information from the Qt library itself is not
|
|
|
|
loaded when the application starts up, thereby reducing the startup times
|
|
|
|
for some applications. You can then use the \gui Modules view to manually
|
|
|
|
load this information, if required.
|
2008-12-04 17:27:29 +01:00
|
|
|
|
2008-12-12 20:11:04 +01:00
|
|
|
\note In this scenario, some breakpoints may not be set by the debugger.
|
2008-12-04 17:27:29 +01:00
|
|
|
|
2009-02-27 10:32:10 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
\section2 Disassembler View and Registers View
|
|
|
|
|
2008-12-12 20:11:04 +01:00
|
|
|
By default, both the \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}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
\section1 A Walkthrough for the Debugger Frontend
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
In our \l{Writing a Simple Program with Qt Creator}{TextFinder} example, we
|
|
|
|
read a text file into a QString and then display it with a QTextEdit.
|
|
|
|
Suppose, you would like 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.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\table
|
|
|
|
\row
|
2008-12-04 17:27:29 +01:00
|
|
|
\i \inlineimage qtcreator-setting-breakpoint1.png
|
2008-12-02 12:01:29 +01:00
|
|
|
\i \bold{Setting a Breakpoint}
|
|
|
|
|
|
|
|
First, we set a breakpoint on the line where we invoke
|
2008-12-16 14:08:58 +01:00
|
|
|
\l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()}
|
|
|
|
by clicking between the line number and the window border. Then, select
|
|
|
|
\gui{Start Debugging} from the \gui{Debug} menu or press \key{F5}.
|
2008-12-02 12:01:29 +01:00
|
|
|
\endtable
|
|
|
|
|
|
|
|
Breakpoints are visible in the \gui{Breakpoints} view, shown below, in
|
2008-12-04 17:27:29 +01:00
|
|
|
\gui{Debug} mode. If you wish to remove a breakpoint, simply right-click on
|
|
|
|
it and select \gui{Delete breakpoint} from the context menu.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-setting-breakpoint2.png
|
|
|
|
|
|
|
|
To view the contents of \c{line}, take a look at the \gui{Locals and
|
|
|
|
Watchers} view.
|
|
|
|
|
|
|
|
\image qtcreator-watcher.png
|
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
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:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\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 == true) {
|
|
|
|
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
|
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
However, if you compile and run this code, the application will not work
|
|
|
|
correctly due to a logic error. To locate this logic error, you can step
|
|
|
|
through the code using the following buttons:
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\image qtcreator-debugging-buttons.png
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-debugging.html
|
|
|
|
\page creator-tips.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-keyboard-shortcuts.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\title Tips and Tricks
|
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
\bold{Quickly Switching between Modes}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
You can quickly switch between modes by pressing \key{Ctrl+1},
|
2008-12-04 17:27:29 +01:00
|
|
|
\key{Ctrl+2}, and so on.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
\bold{Keyboard Shortcuts}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-01-16 16:57:00 +01:00
|
|
|
Qt Creator provides a lot of useful keyboard shortcuts. Some useful
|
|
|
|
shortcuts can be found \l{Keyboard Shortcuts}{here}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-04 17:27:29 +01:00
|
|
|
\bold{Running Qt Creator from the Command Line}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-08 15:14:36 +01:00
|
|
|
You can start Qt Creator from a command prompt with the name of an existing
|
|
|
|
session or \c{.pro} file by giving the name as argument on the command
|
|
|
|
line.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
\bold{Show and Hide the Sidebar}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
You can show and hide the the sidebar in \gui Edit and \gui Debug mode by
|
|
|
|
clicking on the corresponding icon, or by pressing \key{Alt+0}.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
\bold{Display Signals and Slots}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
If you have an instance of a class that is derived from QObject, and you
|
2009-01-26 10:52:48 +01:00
|
|
|
would like to find all other objects connected to one of your object's
|
2008-12-05 15:24:45 +01:00
|
|
|
slots using Qt's signals and slots mechanism -- you can enable
|
|
|
|
\gui{Use Custom Display for Qt Objects} feature under the \gui Debug menu.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
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
|
|
|
|
exposed as children of the slot. This method works with signals too.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 15:24:45 +01:00
|
|
|
\bold{Display Low Level Data}
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
If the special debugging of Qt objects fails due to data
|
|
|
|
corruption within the debugged objects, you can switch the
|
|
|
|
special debugging off in the \gui{Debug} menu. This will make
|
|
|
|
the low-level structures visible again.
|
|
|
|
*/
|
|
|
|
|
2008-12-15 15:59:45 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-tips.html
|
|
|
|
\page creator-keyboard-shortcuts.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-glossary.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
\title Keyboard Shortcuts
|
|
|
|
|
|
|
|
Qt Creator provides various keyboard shortcuts to aid in the development
|
|
|
|
process. These shortcuts are listed in the table below:
|
|
|
|
|
|
|
|
\table
|
|
|
|
\header
|
|
|
|
\o Function
|
|
|
|
\o Key Combination
|
2008-12-12 21:50:29 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Welcome mode
|
|
|
|
\o Ctrl + 1
|
2008-12-02 12:01:29 +01:00
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Edit mode
|
|
|
|
\o Ctrl + 2
|
2008-12-02 12:01:29 +01:00
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Debug mode
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Ctrl + 3
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Projects mode
|
|
|
|
\o Ctrl + 4
|
2008-12-02 12:01:29 +01:00
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Help mode
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Ctrl + 5
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Activate \gui Output mode
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Ctrl + 6
|
|
|
|
\row
|
|
|
|
\o Find
|
|
|
|
\o Ctrl + F
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Find next
|
2008-12-02 12:01:29 +01:00
|
|
|
\o F3
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Go back to the code editor (\gui Edit mode: The first press
|
|
|
|
gives the editor focus, without closing secondary windows; the
|
|
|
|
second press closes all secondary windows. \gui Debug mode or
|
|
|
|
\gui Help mode: Switch to \gui Edit mode.)
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Esc
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Go to a line
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Ctrl + L
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Start debugging
|
2008-12-02 12:01:29 +01:00
|
|
|
\o F5
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Stop debugging
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Shift + F5
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Toggle code declaration and definition
|
2008-12-02 12:01:29 +01:00
|
|
|
\o F2
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Toggle header file and source file
|
2008-12-02 12:01:29 +01:00
|
|
|
\o F4
|
|
|
|
\row
|
|
|
|
\o Toggle Side Bar
|
|
|
|
\o Alt + 0
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Toggle \gui{Build Issues} pane
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Alt + 1
|
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Toggle \gui{Search Results} pane
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Alt + 2
|
|
|
|
\row
|
2008-12-12 22:05:38 +01:00
|
|
|
\o Toggle \gui{Application Output} pane
|
|
|
|
\o Alt + 3
|
2008-12-02 12:01:29 +01:00
|
|
|
\row
|
2008-12-12 21:50:29 +01:00
|
|
|
\o Toggle \gui{Compile Output} pane
|
2008-12-02 12:01:29 +01:00
|
|
|
\o Alt + 4
|
|
|
|
\endtable
|
|
|
|
*/
|
|
|
|
|
2008-12-15 15:59:45 +01:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-keyboard-shortcuts.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\page creator-glossary.html
|
|
|
|
\nextpage creator-supported-platforms.html
|
|
|
|
|
|
|
|
\title Glossary
|
|
|
|
|
|
|
|
\table
|
|
|
|
\header
|
|
|
|
\o Term
|
|
|
|
\o Meaning
|
|
|
|
|
|
|
|
\row
|
|
|
|
\o
|
|
|
|
\raw HTML
|
|
|
|
System Qt
|
|
|
|
\endraw
|
|
|
|
\target glossary-system-qt
|
|
|
|
\o The version of Qt installed on your system. This is the Qt
|
|
|
|
version for the \c qmake command found in your \c PATH.
|
|
|
|
|
|
|
|
\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 System Qt.
|
|
|
|
|
|
|
|
\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-glossary.html
|
2009-02-27 10:32:10 +01:00
|
|
|
\page creator-supported-platforms.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-known-issues.html
|
2009-02-27 10:32:10 +01:00
|
|
|
|
|
|
|
\title Supported Platforms
|
|
|
|
|
|
|
|
Qt Creator is available in binary packages for the following platforms:
|
|
|
|
|
|
|
|
\list
|
|
|
|
\o Windows XP Service Pack 2
|
|
|
|
\o Windows Vista
|
|
|
|
\o (K)Ubuntu Linux 5.04
|
|
|
|
\o (K)Ubuntu Linux 7.04 32bit and 64 bit
|
|
|
|
\o Mac OS 10.4 and later
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
\note Building the sources requires \bold{Qt 4.5.0} or later.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-supported-platforms.html
|
2008-12-02 12:01:29 +01:00
|
|
|
\page creator-known-issues.html
|
2009-02-27 11:59:45 +01:00
|
|
|
\nextpage creator-acknowledgements.html
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-03-04 12:46:05 +01:00
|
|
|
\title Known Issues of Version 1.0.80
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-03-04 12:46:05 +01:00
|
|
|
There are some known issues with Qt Creator 1.0.80.
|
2008-12-02 12:01:29 +01:00
|
|
|
The development team is aware of those, there is no need to report them as bug.
|
|
|
|
|
|
|
|
\list
|
2009-02-03 15:41:03 +01:00
|
|
|
\o Paths or file names containing spaces or special characters, e.g.,
|
|
|
|
colons, dollar signs, hash marks etc. may cause difficulties. This
|
|
|
|
is because some of the tools Qt Creator uses in the background have
|
|
|
|
restrictions on the characters allowed in file and directory names.
|
2009-02-04 14:15:13 +01:00
|
|
|
To be on the safe side, we recommend creating projects and project
|
2009-02-03 15:41:03 +01:00
|
|
|
items with names consisting of plain characters, numbers,
|
|
|
|
underscores, and hyphens.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\o \c{.pro} files are reformatted if files have been added or removed.
|
|
|
|
Whitespace is not preserved.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\o There is no IDE support for adding files to include (\c .pri) files.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\o There is no IDE support for adding/removing sub-projects. Project
|
|
|
|
hierarchies (SUBDIRS template) have to be created manually.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\o The file system sidebar does not update automatically. As a
|
|
|
|
workaround, switch to another directory and then back.
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\o Loading KDE4 designer plugins breaks the style in KDE < 4.2.1
|
|
|
|
due to a bug in KDE.
|
2008-12-17 16:33:42 +01:00
|
|
|
|
|
|
|
\o Scopes in .pro files are ignored, and environment variables not expanded.
|
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\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.
|
2009-02-27 10:32:10 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\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.
|
2008-12-17 16:33:42 +01:00
|
|
|
|
2009-02-03 15:41:03 +01:00
|
|
|
\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.
|
2008-12-17 16:33:42 +01:00
|
|
|
|
2009-03-05 16:27:28 +01:00
|
|
|
\o Running Qt Creator on Windows with 16 bit color depth results in
|
|
|
|
black icons and possible crashes. This was fixed in an updated
|
|
|
|
version released 05 March 2009.
|
2008-12-02 12:01:29 +01:00
|
|
|
\endlist
|
|
|
|
*/
|
|
|
|
|
2009-02-27 10:32:10 +01:00
|
|
|
|
|
|
|
/*!
|
|
|
|
\contentspage index.html
|
|
|
|
\previouspage creator-known-issues.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
|
2009-02-27 12:00:39 +01:00
|
|
|
Qt Creator.\br
|
|
|
|
Roberto Raggi <roberto.raggi@gmail.com>\br
|
2009-03-05 11:15:18 +01:00
|
|
|
QtCreator/src/shared/cplusplus
|
2009-02-27 10:32:10 +01:00
|
|
|
\endlist
|
|
|
|
*/
|