Nokia, Qt, Qt Development Frameworks and their respective logos are
trademarks of Nokia Corporation in Finland and/or .... Classes for network
programming.
“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
[email protected] 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)
[email protected] 3
Andreas Jakl, 2009
Hagenberg
Hagenberg Linz Salzburg
Vienna
Innsbruck Graz 4
Andreas Jakl, 2009
Studying in Hagenberg ●
University of Applied Sciences
●
Software
~ 1300 students
Bioinformatics
> 10.000 m2 education facilities
Software Engineering
●
●
5
Systems
Mobile Computing
Hardware / Software Systems Engineering
Computer and Media Security
Media
Communication and Knowledge Media
Media Technology and Design
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 (later: Trolltech, now: Qt Software / Nokia)
Eirik ChambeEng 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
●
●
Haavard
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 Embedded Linux Windows CE Maemo Symbian (S60)
C++
Java Python Ada Pascal Perl PHP 10
Maintained by Qt open source community. Not officially supported by Qt Development Frameworks. 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
Help system For creating own help
16
Andreas Jakl, 2009
Qt Creator Own IDE
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 ●
●
●
●
●
19
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. Andreas Jakl, 2009
Qt Architecture ●
Qt uses native styles to draw UI
●
Built on low level APIs of platform
●
Widgets emulate exact look & feel Can be adapted by the developer 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
Working with Qt’s tools
Modules for general software development
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 & XPath engine 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
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
Books
Full book list: 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
Books
Full book list: 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