Qt (knihovna)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Qt (výslovnost ) je multiplatformní aplikační rámec (framework) široce používaný pro vytváření aplikačního software s grafickým uživatelským rozhraním určeného pro rozličné softwarové a hardwarové platformy.

Qt toolkit byl vytvořen v roce 1999 společností Trolltech, která jej roku 2008 prodala firmě Nokia. V březnu 2011 Nokia ohlásila prodej práv na provoz podpůrných služeb a prodej licencí pro komerční projekty vytvořené pomocí Qt společnosti Digia. +more Zároveň však Nokia ujišťuje, že po transakci zůstane hlavním vývojářem tohoto toolkitu.

Počínaje rokem 1999 se Qt toolkit vyvinul v multiplatformní nástroj, ve kterém lze vyvíjet konzolové nebo GUI aplikace v odlišných programovacích jazycích pro různé platformy. Aplikace napsané pomocí toolkitu je možno distribuovat pod licencí GPL, LGPL, nebo po splnění určitých podmínek i komerčně.

Qt je knihovna programovacího jazyka C++, ale existuje i pro jazyky Python (PyQt, PySide), Ruby (QtRuby), C, Perl, Pascal, C#, Java (Jambi) a Haskell. Podporuje lokalizaci aplikací a také SQL, zpracování XML, správu vláken, přístup k souborům, práci s grafikou a multimédii. +more Velkou výhodou Qt je velmi přehledně zpracovaná dokumentace a také vývojové programy Qt Creator nebo Qt Designer. Aplikace vytvořené pro grafické uživatelské prostředí používají nativní vzhled operačního systému, takže vyvinuté aplikace se vždy přizpůsobí vzhledu používaného prostředí.

Qt společně s GTK+ nahradila starší Motif. Důkazem kvality a rozšířenosti toolkitu budiž použití například pro projekty Skype, Google Earth, prostředí KDE, webový prohlížeč Opera, VirtualBox, RStudio a jiné.

...

Platformy

Podporované platformy

Desktopové

Windows - Qt pro Microsoft Windows 7, 8. +more1 a 10, 32- i 64bitové verze. * Linux/X11 - Qt pro openSUSE 13. 1, Red Hat Enterprise Linux 6. 6, Ubuntu 14. 04 (vše 64bitové verze) a (Linux 32-/64bit). * macOS - Qt pro Apple macOS 10. 8 „Mountain Lion“, 10. 9 „Mavericks“, 10. 10 „Yosemite“ a 10. 11 „El Capitan“ (vše 64bit).

Mobilní

Android v4. 1. +morex (API Level: 16) * iOS 6 a novější * Windows Phone 8. 1 (arm) * Windows Runtime (x86, x86_64, arm).

Ostatní

Vestavěné Linux platformy - Embedded Linux QWS (ARM) (PDA, Smartphone, Raspberry Pi…) * QNX v6.6.0 (armv7le and x86)

Již nepodporované platformy

Maemo - Maemo 5 (Linux, ARM, X11), plná podpora není zaručena * Symbian * MeeGo * Windows XP, Vista * Windows CE 5.0 / Windows Mobile * Unix (HP-UX, Solaris, AIX) * BlackBerry 10 * Ubuntu Touch

Nové technologie od Qt verze 4

28. června 2005 Trolltech uvolnil Qt 4 a představil pět nových technologií ve frameworku: * Tulip - šablony a třídy. +more * Interview - architektura pro náhled na menu. * Arthur - framework pro 2D kreslení. * Scribe - Unicode text vykreslován s veřejným API k prezentaci nízkoúrovňových textových vrstev. * MainWindow - moderní akčně založené hlavní okno, nástrojová lišta, menu a přilehlá architektura.

Vývoj verzí

Verze . Uvolněna . +more Popis
Qt 4. 1 | 19. prosince 2005 | Obsahuje integrovanou podporu SVG Tiny a PDF převaděč na Qt systém tisku a několik dalších vylepšení.
Qt 4. 2 | 4. října 2006 | Přineslo nativní podporu CSS pro widgetový styl, stejně jako QGraphicsView framework, který dokáže ztvárnit stovky 2D objektů na obrázku (nahrazuje Qt 3. x QCanvas třídy).
Qt 4. 3 | 30. května 2007 | Vylepšilo podporu Windows Vista, OpenGL, generování SVG souborů a přidalo QtScript (ECMAScript skriptovací jádro založené na QSA).
Qt 4. 4 | 7. května 2008 | Přineslo především podporu renderovacího jádra WebKit, multimediální framework Phonon a podporu pro Windows CE.
Qt 4. 5 | 3. března 2009 | Přineslo hlavně vývojové prostředí QtCreator, vylepšený grafický engine, lepší integraci s WebKitem, podporu čtení formátu OpenDocument a podporu frameworku Cocoa.
Qt 4. 6 | 1. prosince 2009 | Nová verze toolkitu obsahuje podporu více platforem (Symbian, Windows 7, Apple macOS 10. 6 (Snow Leopard) a Maemo 6), grafické vylepšení (průhlednost, stíny, záře, atd. ), podpora vícedotykového ovládání v aplikacích, optimalizace Qt GraphicsView renderovacího algoritmu, nový OpenGL vykreslovací engine, WebKit a aktualizovanou verzi Qt Creator 1. 3.
Qt 4. 7 | 21. září 2010 | Klíčovým rysem verze je uvedení QML (Qt Meta-Object-Language), který je popisován jako JavaScript-like deklarativní jazyk pro jednodušší vytváření rozhraní programu. Nová verze třídy QStaticText, která renderuje dvakrát rychleji než ve verzi Qt 4. 6. S enginem QPainter systém efektivněji využívá OpenGL. Nová hardwarová akcelerace QtWebkit renderuje o 31 % rychleji.
Qt 4. 8 | 15. prosince 2011 | K největším změnám patří nová verze Qt Quick, abstrakce od platformy, nová verze WebKitu, podpora vláken v OpenGL modulu, a podpora standardu C++11.
Qt 5. 0 | 19. prosince 2012 | Přinesl novou verzi Qt Quick, balíček Qt Multimedia (nahrazuje Phonon a přidává nové funkce), JSON a vylepšuje podporu IPv6, vyčleňuje Widgety do vlastního balíčku.
Qt 5. 1 | 3. července 2013
Qt 5. 2 | 28. listopadu 2013
Qt 5. 3 | 29. dubna 2014
Qt 5. 4 | 23. října 2014
Qt 5. 5 | 28. dubna 2015
Qt 5. 6 | 8. prosince 2015
Qt 5. 7 | 16. června 2016 | Přinesl Qt 3D - nový modul pro práci s 3D grafikou nebo ovládací prvky Qt Quick Controls 2 zaměřené na mobilní zařízení. IDE Qt Creator je nyní ve verzi 4. 0, vyznačuje se mj. podporou Clangu.
Qt 5. 8 | 23. ledna 2017
Qt 5. 9 | 31. května 2017
.

Licence

Qt Komerční licence pro vývojáře - licence je shodná s licencí používanou při vývoji klasické komerční aplikace. Tato verze je pro vývojáře, kteří nechtějí sdílet zdrojový kód s ostatními v souladu s licencí GPL nebo LGPL. +more * Qt GNU LGPL v2. 1 - tato verze Qt licence je vhodná pro vývoj aplikací open source za předpokladu, že vývojář splní podmínky obsažené ve verzi GNU LGPL 2. 1. * Qt GNU GPL v3. 0 - tato verze Qt licence je vhodná pro vývoj Qt aplikací, pokud hodláte používat aplikaci v kombinaci se softwarem s podmínkami GNU General Public License verze 3. 0 nebo kde jste ochotni dodržet podmínky GNU General Public License verze 3.

Signály a sloty

Důležitou vlastností Qt toolkitu je přítomnost signálů a slotů pro komunikaci mezi objekty. Např. +more pokud se ve widgetu (element GUI, který zobrazuje nebo předává informace pomocí interakce s uživatelem) uskutečnila akce, která změnila jeho stav, může o tom být informován widget umístěný v jiném okně aplikace. Signály a sloty tvoří velmi silný programátorský nástroj.

Místo signálů a slotů se dříve pro tento typ komunikace používal tzv. callback, což je ukazatel na metodu objektu, kterou chceme vyvolat po nějaké události jiného objektu. +more Tento přístup měl dvě nevýhody. Nebyla zde při volání typová kontrola a metody volané pomocí callback jsou silně vázané tzn. volaná metoda musí znát ukazatel na metodu, z které byla vyvolána. Při používání signálů a slotů se tyto dvě nevýhody nevyskytují. Pro jejich použití se definuje spojení signálu se slotem pomocí metody connect. V případě potřeby se pak spojené signály pouze „vyvolávají“.

Sloty a signály mohou být využity ve všech objektech, které jsou přímo nebo nepřímo zděděny ze třídy QObject. Při propojování signálů a slotů může být s jedním slotem spojeno několik různých signálů a stejně tak na jeden signál napojeno několik slotů. +more Sloty mohou být použity pro přijímání signálů a zároveň mohou být použity jako standardní metoda objektu.

Příklad zdrojového kódu

#include // import modulu s widgety

int main(int argc, char *argv[]) { // vytvoreni hlavniho objektu aplikace QApplication app(argc, argv);

// vytvoreni hlavniho okna, nastaveni rozmeru a zobrazeni.. QWidget window; window.resize(320, 240); window.show;

// aktivace hlavni smycky udalosti aplikace.. return app.exec; }

Související články

wxWidgets * PyQt * Grafika a multimédia v Qt

Literatura

BLANCHETTE, Jasmin; SUMMERFIELD, Mark. C++ GUI Programming with Qt 4. +more Second Edition. Prentice Hall, 2008. * THELIN, Johan. Foundations of Qt Development. Apress, 2007. * EZUST, Alan; EZUST, Paul. An Introduction to Design Patterns in C++ with Qt 4. Prentice Hall, 2007. .

Reference

Externí odkazy

[url=http://doc. qt. +moreio]Referenční dokumentace[/url] * [url=http://www. abclinuxu. cz/serialy/qt-4-psani-grafickych-programu]Seriál: Qt 4 - psaní grafických programů[/url] * [url=http://www. abclinuxu. cz/serialy/qt-4-konzolove-programy]Seriál: Qt 4 - konzolové programy[/url].

Kategorie:Widget toolkity Kategorie:Knihovny na bázi X11 Kategorie:Svobodný software naprogramovaný v C++

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top