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

Post on 17-Oct-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Qt Framework

Thomas Keller - itCampus GmbH14.08.2008

Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz

1Donnerstag, 14. August 2008

Überblick

2Donnerstag, 14. August 2008

Die Themen

• Was ist Qt?

• Anwendungen

• Module

• Was macht Qt besonders?

• Entwicklungstools

• Demoreel

3Donnerstag, 14. August 2008

Was ist Qt?

4Donnerstag, 14. August 2008

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

Framework-Überblick6Donnerstag, 14. August 2008

Anwendungen

7Donnerstag, 14. August 2008

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

Archos 604 Wifi9Donnerstag, 14. August 2008

Module

10Donnerstag, 14. August 2008

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

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

...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

Was macht Qt besonders?

14Donnerstag, 14. August 2008

...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

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

Entwicklungstools

17Donnerstag, 14. August 2008

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

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

Qt Designer20Donnerstag, 14. August 2008

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

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

Qt Linguist23Donnerstag, 14. August 2008

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

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

Demoreel

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

26Donnerstag, 14. August 2008

Danke für die Aufmerksamkeit!

Fragen, Wünsche oder Anregungen?

27Donnerstag, 14. August 2008

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

top related