Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius Fakulta jaderná a fyzikáln¥ inºenýrská eské vysoké u£ení technické v Praze
2.6.2010
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Osnova
1
Úvod
2
Seznámení s Qt4
3
Prost°edí QtCreator
4
Vyuºití v praxi
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Problém
Aplikace pro ovládání realtime PCR za°ízení
• Pot°eba komunikovat se za°ízením v reálném £ase • Poºadavek kompatibility s r·znými platformami • Pot°eba grackého uºivatelského rozhraní Zvaºované alternativy programovacího prost°edí
• C++ • Java
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Motivace
Pro£ C++
• Rychlost • Nepot°ebuje b¥hové prost°edí Problémy C++
• Nemá GUI • Absence jediného p°edka • Nemá reexi
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Co to je Qt4
QtGui
Qt3 Support
• Multiplatformní
QtSql
QtCore
Qt4
QtOpengl
QtNetwork
QtXml QtSvg
Knihovna QT4 a moºnosti jejího vyuºití
framework • Nástroj pro snadnou tvorbu GUI • Roz²í°ení objektového modelu C++ • Nahrazuje a roz²i°uje standardní knihovnu
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
GUI v Qt4
Data
• Poskytuje základní
ovládací prvky (MFC, Swing) • Model View • Podpora akcelerovaného vykreslování
Editace
Model
Editace
Delegát2
Delegát1 Zobrazení
View1
Zobrazení
View2
Obrázek: Schématický obrázek MVC
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
QObject
• Základní pilí° MOS • Potomk·m zp°ístupn¥na
reexe • Instancím potomk· jsou zp°ístupn¥ny signály a sloty • Neve°ejný kopírovací konstruktor
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Objektový model Qt4
Meta Object System (MOS)
• Umoº¬uje reexi • Umoº¬uje zasílání zpráv mezi objekty (signály a sloty) Meta Object Compiler (MOC)
• Preprocesor • Generuje metadata pro t°ídy MOS
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Signály a sloty
• Zaji²´ují komunikaci mezi objekty • Vztah m : n • Musí se shodovat v typu parametr· a jejich po£tu • Hojn¥ vyuºívány v GUI (implementace vzoru Observer)
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Inicializace signál· a slot·
1.
2.
3.
connect(comboBox, SINGAL(activated(int)), mojeInstance, SLOT(zpracujPoložku(int)));
4.
Obrázek: Schématický obrázek inicializace signál· a slot·
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Pouºití signál· a slot· Sekvenční diagram:
Diagram komunikace:
Obrázek: UML2 diagramy pro pouºití signál· a slot·
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Qt4 jako alternativa k STL Nahrazení stávajících datových typ·
• Kontejnerové datové typy (QVector, QList, QMap, . . . ) • et¥zce (QString) • Lokalizace, datum a £as (QLocale, QDateTime, . . . ) Nové datové typy
• Vlákna (QThread, QThreadPool, . . . ) • SQL (QSqlDriver, QSqlQuery, . . . ) • XML (QXmlReader, QXmlStreamWriter, . . . )
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Informace o Qt-Creatoru
• Odleh£ené, p°ehledné uºivatelské rozhraní • Roz²i°ovatelný pomocí plugin· • Integrovaný Qt-Designer • Nápov¥da s celou °adou p°íklad·
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Qt-Creator a Qt-Designer
Obrázek: Prost°edí Qt-Creator s integrovaným návrhá°em Qt-Designer
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Tv·rci a licence
Tv·rci
• Trolltech • Nokia • QT software Licence
• GPL • Komer£ní • LGPL
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Na²e pouºití
Obrázek: Aplikace pro testování komunikace se za°ízením
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
Dal²í moºnosti vyuºití Qt4
• Tvorba grackého rozhraní pro C++ aplikace • Tvorba grackých aplikací, vyuºívajících hardwarovou
akceleraci • Tvorba vícevláknových a multiplatformních aplikací v C++ • Tvorba aplikací interagujících s prost°edím KDE4
Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius
Úvod
Seznámení s Qt4
Prost°edí QtCreator
Vyuºití v praxi
D¥kujeme za pozornost
Obrázek: Funk£ní GUI ve 3D scén¥ (p°evzato z labs.trolltech.com) Knihovna QT4 a moºnosti jejího vyuºití
Petr Fiala, Michal Rost, Vladimír panihel, Miroslav Virius