qt framework - thomas kellerdemoreel (die qtdemo applikation und zahlreiche beispielapplikationen...

28
Qt Framework Thomas Keller - itCampus GmbH 14.08.2008 Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz 1 Donnerstag, 14. August 2008

Upload: others

Post on 17-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt Framework

Thomas Keller - itCampus GmbH14.08.2008

Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz

1Donnerstag, 14. August 2008

Page 2: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Überblick

2Donnerstag, 14. August 2008

Page 3: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Die Themen

• Was ist Qt?

• Anwendungen

• Module

• Was macht Qt besonders?

• Entwicklungstools

• Demoreel

3Donnerstag, 14. August 2008

Page 4: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Was ist Qt?

4Donnerstag, 14. August 2008

Page 5: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt ist...

• ein modulares, stringent aufgebautes Entwicklungsframework

• plattform- und architekturunabhängig

• frei bzw. kommerziell lizensierbar (keine funktionalen Einschränkungen bei freier Lizenz)

• ausgesprochen „Cute“ ;)

5Donnerstag, 14. August 2008

Page 6: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Framework-Überblick6Donnerstag, 14. August 2008

Page 7: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Anwendungen

7Donnerstag, 14. August 2008

Page 8: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt-Anwendungen

• Qt-Anwendungen sind in der Regel C++ oder Java-Anwendungen („Qt Jambi“) - Qt/Cocoa-Port in Vorbereitung

• „bekannte“ Desktop-Vertreter sind Google Earth, Skype, Adobe Photoshop Album und Unmengen an freier Software (KDE, ...)

• Qtopia (die embedded-Version von Qt) wird bspw. in MOTOROKR-Serie von Motorola genutzt

8Donnerstag, 14. August 2008

Page 9: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Archos 604 Wifi9Donnerstag, 14. August 2008

Page 10: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Module

10Donnerstag, 14. August 2008

Page 11: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Core und GUI

• QtCore - Basisklassen für Nicht-GUI-Anwendungen (Datenstrukturen, Basis-XML-Support, Highlevel-/Lowlevel-Threads, Basis-I/O, Prozessunterstützung, Model-Part des Interview-Framework)

• QtGui - Basisklassen für GUI-Anwendungen (Widgets, Layouts, Graphics View, Application Styling, View-Part des Interview-Framework)

11Donnerstag, 14. August 2008

Page 12: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Netzwerk, Scripting, SQL

• QtNetwork - Highlevel-TCP/IP-Support (Implementierungen von HTTP(S) und FTP, TCP-/UDP-/SSL-Sockets)

• QtScript - ECMA-Scripting für Qt-Applikationen

• QtSQL - Datenbankintegration (Treiber für MySQL, Postgres, SQLite und ODBC liegen der freien Version bei)

12Donnerstag, 14. August 2008

Page 13: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

...und noch mehr

• QtSvg - SVG 1.2 Tiny Leseunterstützung

• QtWebKit - Browserintegration

• QtXML - DOM/SAX-Implementierung

• QtXMLPatterns - XPath-/ XQuery-Support

• Phonon - Multimedia-Wrapper (von KDE)

13Donnerstag, 14. August 2008

Page 14: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Was macht Qt besonders?

14Donnerstag, 14. August 2008

Page 15: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

...warum Qt?• ausgereifte API, schnelle Entwicklung,

schnelles Prototyping

• natives Look‘n‘Feel auf allen Plattformen; enge Systemintegration (Desktop Services)

• Umfangreiche Widget-/Dialogunterstützung

• Signals and Slots - komfortable Alternative zu unsicheren Callbacks, selbst über Threadgrenzen hinweg!

15Donnerstag, 14. August 2008

Page 16: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Und noch mehr Gründe• Durchdachtes Model-View-Konzept mit

TreeViews, TableViews uva. sowie den dazugehörigen Modelklassen

• High-Level-Threads; einfach skalierbare Anwendungen mit QtConcurrent (MapReduce, FilterReduce)

• Plugin-System, Unit-Testing, Tool-/Containerklassen, ...

• umfangreiche Entwicklungstools...

16Donnerstag, 14. August 2008

Page 17: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Entwicklungstools

17Donnerstag, 14. August 2008

Page 18: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

qmake• übersetzt Projekt-Dateien (*.pro) in

Makefiles, Visual Studio Projektdateien oder Xcode-Projekte

• qmake-Projektdateien: einfache, deklarative Textdateien...HEADERS += src/mainwindow.hwin32:HEADERS += src/mainwindow_win32.hDESTDIR = binTRANSLATIONS = res/i18n/guitone_de.tsRESOURCES = res/guitone.qrcmacx:CONFIG(release, debug|release):CONFIG += x86 ppc...

18Donnerstag, 14. August 2008

Page 19: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Show me the Code!• eine ganz einfache Qt-GUI-Anwendung

$ vi test.cpp#include <QtGui>...Ctrl+D$ qmake -project # erzeuge.pro$ qmake # erzeuge Makefile$ make # erstelle Anwendung$ ./test

19Donnerstag, 14. August 2008

Page 20: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt Designer20Donnerstag, 14. August 2008

Page 21: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt-Designer

• Einfaches Layouten per Mausklick

• Signals/Slots-Integration

• Vorschau für versch. Plattformen

• Stylesheets

• integrierbar in MS Visual Studio und Eclipse (QtJambi)

21Donnerstag, 14. August 2008

Page 22: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Browser-Demo

• Einen funktionsfähigen Webbrowser mit wenigen Klicks erstellen...

(In QDesigner wir ein QWebView mit drei Buttons für die Aktionen „Vor“, „Zurück“ und „Neu Laden“ erstellt - der

Browser ist sofort bedienbar)

22Donnerstag, 14. August 2008

Page 23: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Qt Linguist23Donnerstag, 14. August 2008

Page 24: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Wie lokalisiere ich meine Anwendung?

• Strings mit tr() markieren

• $ lupdate srcdir -ts app_de.ts

• mit Linguist ts-Datei übersetzen

• $ lrelease app_de.ts -qm app_de.qm

• QTranslator zum Laden der Übersetzung nutzen

24Donnerstag, 14. August 2008

Page 25: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Lokalisierungs-Demo

• Eine kleine Utility-Anwendung zur Zeitmessung wird ins Deutsche übersetzt...

(Die WorkTimer Beispielapplikation wird, dem Ablauf auf der vorherigen Folie folgend, lokalisiert. In der Datei main.cpp wird

die resultierende Sprachdatei geladen.)

25Donnerstag, 14. August 2008

Page 26: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Demoreel

(Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.)

26Donnerstag, 14. August 2008

Page 27: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Danke für die Aufmerksamkeit!

Fragen, Wünsche oder Anregungen?

27Donnerstag, 14. August 2008

Page 28: Qt Framework - Thomas KellerDemoreel (Die QtDemo Applikation und zahlreiche Beispielapplikationen werden vorgeführt.) Donnerstag, 14. August 2008 26. Danke für die Aufmerksamkeit!

Quellen

• http://trolltech.com/products/qt et al

• http://trolltech.com/company/customers/customer-devices

• http://archos.com/img/archos_604wifi/download/ARCHOS_604wifi-finger_browsing.png

28Donnerstag, 14. August 2008