Introduction. Qt can be pronounced as cute. 1 Andreas Jakl, 2009 v October 2009

“Qt” can be pronounced as “cute” Qt™ Introduction Qt is © 2009 Nokia Corporation and/or its subsidiaries. Nokia, Qt, Qt Development Frameworks and t...
Author: Bertha Martin
1 downloads 3 Views 3MB Size
“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