×
Namespaces

Variants
Actions
Revision as of 06:56, 16 December 2011 by hamishwillee (Talk | contribs)

Qt overview

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Compatibility
Platform(s):
Symbian
Article
Created: lpvalente (09 Apr 2011)
Last edited: hamishwillee (16 Dec 2011)

Contents

What is Qt?

Qt [pronounced 'cute'] is a cross-platform application framework. Using Qt, you can develop applications and user interfaces, and deploy them across many desktop and embedded operating systems without needing to rewrite the source code.

The vision is to have Qt Everywhere and enable developers to create advanced applications with innovative user experiences while getting the applications to market quickly. Qt allows you to code once and deploy across major device and desktop operating systems.

In October 2008 at the Symbian Smartphone Show, Qt announced the porting of Qt to S60 on Symbian OS and made available a technology preview of the S60 port of Qt.

If you are new to Qt, it is recommended that you become familiar with Qt by evaluating it before using the Qt for Symbian technology preview. For more information, see Learning Qt.

Qt for Symbian Technology

The Qt for Symbian Developer's Library is the main source of information for Qt for Symbian, including details about how Qt relates to S60 and Symbian OS.

For more information about installing Qt for Symbian, see the Qt for Symbian installation guide in the Qt for Symbian Developer's Library. The article Qt for Symbian - Installation packages describes the current technology preview installation kit and provides a list of the earlier technology previews.


Important Notice

The official product and final release is now available as described above Official Qt for Symbian Release

Learning Qt

The best way to learn Qt is to try it on one of the fully supported platforms, such as Microsoft Windows. To start with Windows, install the package found on the Qt for Application Development Platform web page.

Note: For Windows Vista, there can be a problem with the file mingwm10.dll missing from the C:\windows\system directory. To solve this problem, do a Google search for "mingwm10.dll download" and get a copy from one of the free websites. When the file has been placed in the correct directory, go to Start > All Programs > Qt by Nokia v4.4.3 (OpenSource) > Designer to open the Qt Designer GUI.

For extensive Qt documentation, see How to learn Qt

Go through all the examples and demos that are included with the SDK.

Qt Creator IDE

Qt Creator IDE is a tool for creating Qt applications that eliminates the need for operating system or device emulators. The tool has also been implemented efficiently to minimise download size as well as processor and disk space requirements. The Qt Creator IDE is easy to install and the IDE enables developers to create Qt applications quickly and easily.

Qt tools

Qt is supplied with several command line and graphical tools to simplify and speed up the development process. Each tool is listed here with a link to its documentation.

Qt Books

Qt terms

1.Widgets: UI components (buttons, message boxes, application windows)

2.Layout Manager: Automatic positioning and resizing of child widgets.

3.Signals and Slots: Inter-object communication.

4.Events: System events (mouse clicks, keyboard, ...)

5.Actions: e.g., save action used in tool bar and menu.


Qt Architecture

  • Qt uses native styles to draw UI

Widgets emulate exact look & feel Can be adapted by the developer

  • Built on low level APIs of platform

MFC, Motif, Layered toolkit with thin wrappers. Less performance, less flexibility

  • Cross-platform

Single source for multiple platforms Only requires recompilation


Qt Graphical Architecture

A4.jpg

Qt Modules

Module Description
QtCore Core non-graphical classes used by other modules
QtGui Graphical user interface (GUI) components
QtNetwork Classes for network programming
QtOpenGL OpenGL support classes
QtScript Classes for evaluating Qt Scripts
QtSql Classes for database integration using SQL
QtSvg Classes for displaying contents of SVG files
QtWebKit Classes for displaying and editing web content
QtXml Classes for handling XML
QtXmlPatterns An XQuery& XPathengine for XML and custom data models
Phonon Multimedia framework classes
Qt3Support Qt 3 compatibility classes
QtDesigner Classes for extending Qt Designer
QtUiTools Create user interfaces from .ui-files at run time
QtHelp Classes for online help
QtAssistant Support for online help
QtTest Tool classes for unit testing

Advantages of Qt

• Target multiple platforms from a single source

• Shorter development time – faster time to market

• Reduced maintenance expense

• Avoid OS-subgroups in development organization

• Enjoy true platform independence

• Target a new platform in weeks, not months

• Rapidly respond to evolving market requirements

• Remain insulated from platform changes

• Qt is actively maintained and developed to support all new mainstream OS variants

• Focus development efforts instead on value-adding innovation

• Qt delivers real, lasting competitive advantage

• Qt increases the productivity of developers by making C++ programming faster, easier and more intuitive

• Qt development tools eliminate common bottlenecks in the development process:

• GUI Design & Layout - Qt Designer

• Translation/Localization - Qt Linguist

• Documentation - Qt Assistant

• Cross-platform build system – qmake

• Qt delivers true platform freedom – targeting a new platform is measured in days or weeks, not months or years

• One source code base means less maintenance time and expense – multiplying results of development efforts

• Full access to complete source code on all platforms enables development teams to adapt and extend Qt to meet their unique needs, expediting the development process.



Nokia to Add LGPL to Qt Licensing Model

Nokia to Add LGPL to Qt Licensing Model

Qt for Symbian Developer's Library

Qt for Symbian Developer's Library


DiBoDiscussionboard2.gif

381 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×