You are on page 1of 30

“Qt” can be

pronounced as
“cute”

Qt™

Introduction

Qt is © 2009 Nokia Corporation and/or its subsidiaries.


Nokia, Qt, Qt Development Frameworks and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.

1 Andreas Jakl, 2009 v2.0 – 28 October 2009


Disclaimer
● These slides are provided free of charge at http://www.symbianresources.com and are used for
trainings and during courses at the Upper Austria University of Applied Sciences, Campus
Hagenberg, Austria ( http://www.fh-ooe.at/mc )
● Respecting the copyright laws, you are allowed to use them:
 for your own, personal, non-commercial use
 in the academic environment
● In all other cases (e.g. for commercial training), please contact andreas.jakl@fh-hagenberg.at
● The correctness of the contents of these materials cannot be guaranteed. Andreas Jakl is not
liable for incorrect information or damage that may arise from using the materials.
● Parts of these materials are based on books listed at the end of the slides of unit 1 and on official
Qt documentation and source code. This document contains copyright materials which are
proprietary to Qt Development Frameworks and Nokia. “Qt™”, “S60™” and their respective logos
are a trademark of Nokia. Pictures of mobile phones or applications are copyright their respective
manufacturers / developers. “Symbian ™”, “Symbian OS ™” and all other Symbian-based marks
and logos are trademarks of Symbian Foundation. All other trademarks are property of their
respective owners.

2 Andreas Jakl, 2009


About Me: Andreas Jakl
● Assistant Professor at the Upper Austria University of Applied
Sciences, Campus Hagenberg since 2006
 Main focus: mobile interaction
 Teaching: Qt / Symbian OS, Java ME, Android, LaTeX, Interaction
Technologies, Introduction to Software Development
● Own company “Mopius” since 2004
 Mobile applications, games, consulting and training
● Experience:
 Forum Nokia Champion (2007, 2008, 2009)
 Siemens / BenQ Mobile (Munich, R&D)
 Bachelor & Master “Digital Media”
in Hagenberg (2001 – 06)
● andreas.jakl@fh-hagenberg.at

3 Andreas Jakl, 2009


Hagenberg

Hagenberg
Linz
Vienna
Salzburg

Innsbruck
Graz

4 Andreas Jakl, 2009


Studying in Hagenberg

● University of Applied Sciences ● Software


 ~ 1300 students  Bioinformatics
 > 10.000 m2 education facilities  Software Engineering
● Systems
 Mobile Computing
 Hardware / Software Systems
Engineering
 Computer and Media Security
● Media
 Communication and Knowledge
Media
 Media Technology and Design

5 Andreas Jakl, 2009


In the beginning there was …

An Introduction to Qt

6 Andreas Jakl, 2009


Qt in a Nutshell

Qt is a class library for platform


independent development of graphical
user interfaces based on C++.

The framework also includes XML,


databases, internationalization,
network, multithreading, ...

7 Andreas Jakl, 2009


Short History of Qt
● 1991: Development started
 Cross platform GUI toolkit was needed
● 1994: Decided to go into business
 “Q” looked beautiful in Emacs font. “t” for toolkit
 Company name: Quasar Technologies Eirik Chambe- Haavard
(later: Trolltech, now: Qt Software / Nokia) Eng Nord

● 1995: First public release through newsgroups (Qt 0.90)


 Dual licensing: commercial & free for open source
● 2000: Qtopia – platform for mobile phones & PDAs
● 2005: Qt 4.0 – compatibility break, leads to new KDE 4 desktop
● 2008: Nokia purchases Qt, name changes first to Qt Software, then to Qt Development
Frameworks
● 2009 / 2010: Focus on mobile platforms (Symbian and Maemo), dedicated mobility APIs

8 Andreas Jakl, 2009


Customers

9 Andreas Jakl, 2009 All logos are trademarks of their respective owners.
The logos are included on this page for academic use only.
Platforms

Windows
Mac OS
Linux / X11
C++ Embedded Linux
Windows CE
Maemo
Java Symbian (S60)
Python
Ada
Pascal
Maintained by
Perl
Qt open source community.
PHP Not officially supported by Qt Development Frameworks.

10 Andreas Jakl, 2009


Mobile Development 2009

Java ME

11 Andreas Jakl, 2009


Symbian OS

● Open mobile operating system


● Ownership:
 Symbian Foundation
 Previously: Symbian Ltd. – company bought by Nokia
and OS transferred to the Foundation
● Used by major handset manufacturers:
 Nokia, Samsung, Sony Ericsson
 Smartphone Sales: 51% Symbian (Q2 2009 – Gartner*)
* http://www.gartner.com/it/page.jsp?id=1126812

12 Andreas Jakl, 2009


Symbian Future

● Symbian^4: replaces S60 with Qt-based UI


● Components:
 Orbit: extension library for Qt,
50+ UI elements tailored for mobile
 Direct UI: new app framework based on Orbit
● Availability: end of 2010

13 Andreas Jakl, 2009


Maemo

● Linux-based mobile operating system


 Developed by Nokia, based on Debian Linux
● N900: First Maemo-device with telephony
 Previously: N770, N800, N810 Internet Tablets

14 Andreas Jakl, 2009


Maemo Future

● Maemo 5
 GTK+ based UI
 Final Qt support: H1 2010
● Maemo 6
 GTK+ replaced with Qt
 Multi-touch, gestures support
 Community powered GTK support

15 Andreas Jakl, 2009


Development Tools

Qt Designer
Drag & Drop UI creation

IDE Integration
Visual Studio, Eclipse

Internationalization
Single binary for multiple languages

Qt Creator
Own IDE
Help system
For creating own help

16 Andreas Jakl, 2009


Licensing – OLD
● Dual licensing
 GPL for open source
 Commercial licence
– Desktop: full framework included
– Desktop light: missing networking, database, OpenGL and graphics view
– Console: without GUI
● Commercial Licence advantages
 Source code of own projects need not be published
 Support
 Few commercial-only tools
(full Visual Studio integration, commercial database drivers)
 Price: depends on platforms and developers, starts at €1000+

17 Andreas Jakl, 2009


Licensing – NEW

● LGPL 2.1 starting with Qt 4.5


 Qt gets completely free!
 Unlike GPL, the LGPL:
– Allows using Qt for free in commercial, closed source apps
 Complete development source code of Qt available
● GPL and commercial versions will still be available
 Code changes to Qt source code doesn’t have to be
shared
 Included support options
18 Andreas Jakl, 2009
Qt Terms

● Widgets: UI components (buttons,


message boxes, application windows)
● Layout Manager: Automatic
positioning and resizing of child
widgets.
● Signals and Slots: Inter-object
communication.
● Events: System events
(mouse clicks, keyboard, ...)
● Actions: e.g., save action used in
toolbar and menu.

19 Andreas Jakl, 2009


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 toolkits with thin wrappers.
Less performance, less flexibility
● Cross-platform
 Single source for multiple platforms
 Only requires recompilation
20 Andreas Jakl, 2009
Qt Architecture

21 Andreas Jakl, 2009


Qt for Symbian

● Based on OpenC and native Symbian OS libraries

Qt
Application

Qt Libraries

OpenC
Libraries

Symbian Libraries

22 Andreas Jakl, 2009


Qt Modules
Module Description
QtCore Core non-graphical classes used by other modules
QtGui Graphical user interface (GUI) components
Modules for general software development

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 & XPath engine for XML and custom data models
Phonon Multimedia framework classes
Qt3Support Qt 3 compatibility classes
QtDesigner Classes for extending Qt Designer
Working with Qt’s tools

QtUiTools Create user interfaces from .ui-files at run time


QtHelp Classes for online help
QtAssistant Support for online help
23
QtTest Tool classes for unitAndreas
testingJakl, 2009
Further Information?

Qt Resources

24 Andreas Jakl, 2009


Getting Help

● Qt Documentation (Qt Assistant)


● Qt-Interest Newsgroup
(nntp://nntp.trolltech.com/trolltech.qt-interest)
● Qt dedicated sites:
 QT Centre: http://www.qtcentre.org/
 QTforum.org: http://www.qtforum.org/
 Overview:
http://trolltech.com/developer/community-resources

25 Andreas Jakl, 2009


Full book list:
Books http://trolltech.com/developer/books

C++ GUI Programming with Qt 4 (2nd edition)


Jasmin Blanchette, Mark Summerfield. Prentice Hall.
Official book for Qt development. Quite complete, but its structure
could be improved.
Status: Qt 4.3, 2008

The Book of Qt 4
Daniel Molkentin. No Starch Press.
Starts off great with detailed and very helpful explanations. Gets a
bit more inaccurate towards the end, giving the feeling that time
was getting short. Highly recommended overall, though.
Status: 2007

26 Andreas Jakl, 2009


Full book list:
Books http://trolltech.com/developer/books

Qt 4 GUI-Entwicklung mit C++


Jürgen Wolf. Galileo Computing.
German book, good structure and explanations. Many small errors,
but nothing serious that negatively influences the results.
Status: Qt 4.3, 2007

An Introduction to Design Patterns in C++ with Qt 4


Alan Ezust, Paul Ezust. Prentice Hall.
Great to learn Qt and C++ at the same time. More difficult to
extract information if you already know C++.
Status: Qt 4.1, 2006
Available for free:
http://cartan.cas.suffolk.edu/oopdocbook/opensource/

27 Andreas Jakl, 2009


Books
Qt for Symbian (new title)
Editors: Frank H. P. Fitzek, Tommi Mikkonen, Tony Torp.
For Qt developers wanting to get started with development on the
mobile Symbian platform, or the other way round.
Status: Qt 4.6, February 2010

28 Andreas Jakl, 2009


Qt Certification Program

● Prove your skills?


 Launched in October ‘09
 Partner: Pearson Vue
 Exams at events or test centers around the world
 Discounts for students planned
● http://qt.nokia.com/developer/learning/certification

29 Andreas Jakl, 2009


That’s it.

Thanks for your attention.

30 Andreas Jakl, 2009

You might also like