Qt Reference Documentation

# Develop with Qt

Developing a Qt application involves many different steps and stages. From configuring Creator to distributing binaries to different platforms, Qt provides many options along the way.

## Configuring Qt and Creator Targets

Qt and Creator are configurable to compile applications on many platform targets and multiple platforms.

### Configuring Creator for Qt Development:

Creator is the integrated development environment for developing Qt applications. Creator encompasses every step of application development from interface design to application testing and deployment.

- Creating Qt Projects
- Building and Running Applications
  - Targets - edit and set compiler targets
  - Build Settings - edit and set build configurations
  - Run Settings - edit and set application run settings
- Setting Up Development Environment for Symbian
- Setting Up Development Environment for Maemo

### Qt Platform Support

Alternatively, Qt may be installed on its own without the Nokia Qt SDK.

Information regarding Qt Support on Different Platforms:

- Symbian and Mobile Development
- Microsoft Windows
- Microsoft Windows CE
- Apple Mac OS X
- Linux and X11 Platforms
- Qt for Embedded Linux

For more information about the platforms supported and their installation pages, view the Supported Platforms and the Cross-Platform and Platform-Specific Development pages.

## Qt Technologies

Qt introduces an innovative alternative for inter-object communication, called "signals and slots", that replaces the old and unsafe callback technique used in many legacy frameworks. Qt also provides a conventional event model for handling mouse clicks, key presses, and other user input. Qt's cross-platform GUI applications can support all the user interface functionality required by modern applications, such as menus, context menus, drag and drop, and dockable toolbars. Desktop integration features provided by Qt can be used to extend applications into the surrounding desktop environment, taking advantage of some of the services provided on each platform.

The Qt Modules page has a listing of the technology modules offered by Qt.

### Qt's Meta-Object System

Qt offers a unique event system based on meta-objects, signals and slots, and property systems.

- Qt's Meta-Object System - Qt's mechanism for signals and slots, inter-object communication, run-time type information, and dynamic property system
- Event System - event handling and delivery
- Property System - dynamic object properties

### UI Creation

Qt offers several options with regards to user interface creation: widget based applications using layouts and Qt Quick interfaces with QML.

- Qt Quick - create UIs using QML
  - Creator's QML Design Mode - design Qt Quick interfaces using Creator's design mode
- Widgets and Layouts - primary elements for C++ based interfaces
  - Creator's Designer - design interfaces using Qt Designer
- UI Design with Qt - covers many Qt features for UI creation

### Inter-Process Communication, Threading, and Networking

In addition to Qt's Meta-Object System, Qt has several technologies that deal with inter-process communication.

- Inter-Process Communication - various overviews of protocols implemented in Qt
- Network Programming - various overviews to network APIs
- D-Bus - D-Bus implementation in Qt
- Thread Support - overview of threading APIs and concurrent programming topics

### Rendering and Paint System

Qt has various support for different rendering and painting methods.

- Coordinate System - Information about the coordinate system used by the paint system
- Graphics View Framework - manages a large number of 2D items and visualizes the items
- Paint System - A system for painting on the screen or on print devices using the same API
- QtSvg Module - module for displaying and creating SVG files
- Rendering APIs:
  - QtOpenGL Module - module for rendering with the OpenGL API
  - QtOpenVG Module - provides support for OpenVG painting
- Printing with Qt - A guide to producing printed output with Qt's paint system and widgets

### QtWebKit Module

Web applications are increasing in importance and abundance and Qt has WebKit support.

- WebKit in Qt - WebKit Module

### Utilities

Qt supports many utilities that work on multiple platforms.

- Containers - Qt's implementation of various data structures such as linked lists and hash maps
- Rich Text Processing - for manipulating structured rich text documents
- XML Processing - high level manipulation of XML data using different interfaces
- Making Applications Scriptable - provides Qt applications with ECMAScript processor
- Qt Linguist - for translating applications into local languages

For more information, visit the Qt Tools page.

## Testing Qt Applications

Testing and debugging are part of the development process and Qt offers the developer multiple methods of testing their code.

- Debugging Applications in Creator - various debugging options in Creator
- Debugging Techniques - essential techniques for debugging Qt code
- Simulator - testing mobile applications by simulating a mobile environment
- QML Viewer - an executable that is able to run QML files
- QTestLib - a unit testing framework built into Qt

## Deployment

Symbian phones, Maemo devices, desktop environments, embedded Linux devices -- Qt applications are deployable to many environments. To deploy Qt applications onto multiple platforms, there are special considerations that each platform introduce.

- Deploying Qt Libraries - compares static versus shared libraries and deploying Qt libraries
- Deploying Third Party Libraries - deployment of libraries that are not under Qt's dual-license model.
- Platform-Specific Deployment:
  - X11 - deploying Qt applications on X11 platforms
  - Windows - deploying Qt applications on Windows operating systems
  - Mac OS X - deploying Qt applications on Mac OS X
  - Embedded Linux - deploying Qt applications on embedded Linux
  - Symbian - deploying Qt applications on the Symbian platform
- Symbian Deployment in Creator - Symbian application deployment built into Creator
- Deploying Qt Applications on Maemo Devices

## Ovi Store Publishing

Creator can publish applications to Ovi Store directly.

- Publishing Qt Applications to Ovi Store

For additional information, visit the Cross-Platform and Platform-Specific Development and the Supported Platforms page.

## Where to Go from Here

Qt Demos and Examples

- Application Gallery
- Tutorials
- Qt Examples
- QML Examples and Demos

Qt Information

- Programming with Qt
- UI Design with Qt
- Cross-platform and Platform-specific Development
- Qt and Key Technologies
- Best Practice Guides
- Licenses and Credits