Qt
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 22. května 2018; kontroly vyžadují
49 úprav .
Qt |
---|
|
Snímek Qt Creator IDE verze 6.0.2 |
Typ |
rámec |
Autor |
Haavard Nord [d] [1]a Eirik Chambe-Eng [d] [1] |
Vývojáři |
Trolltech (1991–2008)
Nokia (2008–2011)
Projekt Qt (2011 – ?)
Digia (2012–2014)
The Qt Company (2014 – současnost) |
Zapsáno v |
C++ [2] |
Operační systém |
GNU/Linux [3] , Microsoft Windows [3] , macOS [3] , BSD [3] , Android [3] a iOS [3] |
První vydání |
20. května 1995 |
Nejnovější verze |
|
Čitelné formáty souborů |
Qt Message [d] , Qt User Interface [d] , Qt Translation zdrojový soubor [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] a Qt Jambi User Interface [d ]] |
Vygenerované formáty souborů |
Qt Message [d] , Qt User Interface [d] , Qt Translation zdrojový soubor [d] , Qt Assistant Documentation Profile [d] , Qt Assistant Content File [d] , Qt Resource Collection [d] a Qt Jambi User Interface [d ]] |
Licence |
LGPL-3.0 [d] [3][5],GNU GPL 2[3]aGNU GPL 3[3] |
webová stránka |
qt.io _ |
Mediální soubory na Wikimedia Commons |
Qt ( IPA [ ˈ k j u ː t ], vyslovováno ( kyut ) jako „roztomilé“ [6] nebo neformálně QT (q-ti, ku-te, kyu-te) je rámec pro vývoj multiplatformního softwaru v Programovací jazyk C ++ Existují knihovny pro mnoho programovacích jazyků, které vám umožňují využívat výhody Qt: Python - PyQt , PySide , Ruby - QtRuby [7] , Java - Qt Jambi [8] , PHP - PHP-Qt a ostatní.
Od svého založení v roce 1996 knihovna vytvořila základ mnoha softwarových projektů. Kromě toho je Qt základem oblíbeného desktopového prostředí KDE , které je součástí mnoha distribucí Linuxu .
Funkce a složení
Qt vám umožňuje spouštět software s ním napsaný na většině moderních operačních systémů jednoduchým zkompilováním programu pro každý systém beze změny zdrojového kódu . Zahrnuje všechny hlavní třídy , které mohou být vyžadovány při vývoji aplikačního softwaru , od prvků grafického rozhraní po třídy pro práci se sítí , databázemi a XML . Je plně objektově orientovaný, rozšiřitelný a podporuje techniky programování komponent.
Charakteristickým rysem je použití metaobjektového kompilátoru - předběžného systému zpracování zdrojového kódu. Rozšíření schopností zajišťuje systém zásuvných modulů, které lze umístit přímo do panelu vizuálního editoru. Nechybí ani možnost rozšíření známé funkcionality widgetů spojené s jejich umístěním na obrazovku, zobrazením, překreslením při změně velikosti okna.
Dodává se s vizuálním vývojovým prostředím pro grafické rozhraní Qt Designer , které vám umožňuje vytvářet dialogy a formuláře v režimu WYSIWYG . Distribuce Qt zahrnuje Qt Linguist , grafický nástroj, který zjednodušuje lokalizaci a překlad programu do mnoha jazyků; a Qt Assistant , systém nápovědy Qt, který usnadňuje práci s dokumentací knihovny a také vám umožňuje vytvářet nápovědu pro různé platformy pro software vyvinutý na základě Qt. Počínaje verzí 4.5.0 je zahrnuto vývojové prostředí Qt Creator , které zahrnuje editor kódu , nápovědu, grafické nástroje Qt Designer a schopnost ladit aplikace. Qt Creator může používat GCC nebo Microsoft VC++ jako kompilátor a GDB jako debugger. Pro verze Windows je knihovna dodávána s kompilátorem, hlavičkou MinGW a objektovými soubory .
Existují verze knihovny pro Microsoft Windows , systémy třídy UNIX s grafikou X11 , Android , iOS , Mac OS X , Microsoft Windows CE , QNX [9] , vestavěné systémy Linux a platformu S60 . Probíhá portování na Windows Phone a Windows RT [10] [11] . Portování na Haiku a Tizen je také v plném proudu .
Nějakou dobu byla knihovna distribuována také ve verzi Qt/Embedded, určené pro použití na embedded a mobilních zařízeních, ale od poloviny 2000 byla oddělena do samostatného produktu Qtopia .
Počínaje verzí 4.5 je Qt distribuován pod třemi licencemi:
- Qt Commercial - pro vývoj softwaru s proprietární licencí, která umožňuje úpravu samotného Qt bez zveřejnění změn;
- GNU GPL - pro open source vývoj distribuovaný podle podmínek GNU GPL , stejně jako pro modifikaci Qt;
- GNU LGPL - pro vývoj softwaru s proprietární licencí.
Zdrojový kód, který je stejný pro všechny možnosti licence, je volně dostupný v úložišti Git umístěném na Github . Kromě samotného zdrojového kódu Qt existují také repozitáře souvisejících knihoven vyvinuté autory knihovny a komunitou.
Před verzí 4.0.0 byly pod svobodnou licencí distribuovány pouze Qt/Mac, Qt/X11, Qt/Embedded, ale od verze 4.0.0 (vydané na konci června 2005 ) byl software Qt „osvobozen“ a Qt /Okna. Ve stejné době existovaly bezplatné verze Qt / Windows od třetích stran starší než 4.0.0, vyrobené na základě Qt / X11.
Podporované platformy
Qt běží na široké škále platforem; jsou oficiálně podporovány:
Plošina |
Popis
|
Linux/Unix
|
X11
|
Qt pro správce oken X ( Linux , FreeBSD , HP-UX, Solaris, AIX atd.). [12]
|
Wayland
|
Qt pro Wayland . [13] Aplikace Qt mohou přepínat mezi grafickými backendy, jako je X a Wayland, při spouštění přidáním volby -platform příkazového řádku. [14] [15] To umožňuje aplikacím tiše migrovat z X11 na Wayland.
|
Vestavěné systémy Linux
|
Qt pro vestavěné systémy: PDA , chytré telefony atd. [16] Existuje na několika platformách v závislosti na technologii vykreslování. DirectFB , LinuxFB a EGLFS ( EGL Celá obrazovka).
|
Android
|
Qt pro Android [17] dříve známý jako Necessitas. [osmnáct]
|
platformy Apple
|
OS X
|
Qt pro Apple OS X ; podporuje aplikace Cocoa . [19]
|
iOS
|
Qt pro platformy iOS ( iPhone , iPad ). [dvacet]
|
platformy Microsoft
|
Okna
|
Qt pro Microsoft Windows XP , Vista , 7 , [21] 8 a 10 . [22]
|
Windows CE
|
Qt pro Windows CE 6 a Windows Embedded Compact 7 . [23]
|
Windows RT
|
Podpora aplikací založených na WinRT pro Windows 8 a Windows Phone 8 [24] . Od verze 5.4: Windows Phone 8.1 . [25]
|
Další vestavěné platformy
|
Integrita
|
Qt pro integritu . [26]
|
QNX
|
Qt pro QNX . [27]
|
VxWorks
|
Qt pro VxWorks . [28]
|
Poté , co Nokia vydala zdrojový kód Qt komunitě na Gitorious , objevily se různé porty. Existují také některé porty, které mohou být dostupné, ale již nejsou podporovány.
Komponenty
Knihovna je rozdělena do několika modulů:
- QtCore - třídy jádra knihovny používané jinými moduly;
- QtGui - komponenty GUI;
- QtWidgets - obsahuje třídy pro klasické aplikace založené na widgetech, modul je v Qt 5 oddělen od QtGui;
- Qt QML - modul pro podporu QML ;
- QtNetwork je sada tříd pro síťové programování. Podpora různých protokolů na vysoké úrovni se může lišit od verze k verzi. Verze 4.2.x obsahuje třídy pro práci s protokoly FTP a HTTP . Třídy jako QTcpServer, QTcpSocket pro TCP a QUdpSocket pro UDP jsou navrženy pro práci s protokoly TCP/IP ;
- QtOpenGL - sada tříd pro práci s OpenGL ;
- QtSql je sada tříd pro práci s databázemi pomocí SQL . Hlavní třídy tohoto modulu ve verzi 4.2.x: QSqlDatabase - třída pro zajištění připojení k databázi, pro práci s konkrétní databází vyžaduje objekt zděděný od třídy QSqlDriver - abstraktní třída, která je implementována pro konkrétní databáze a může vyžadovat kompilaci Database SDK. Například pro sestavení ovladače pro Firebird nebo InterBase DBMS jsou vyžadovány soubory .h a knihovny statických odkazů, které jsou součástí distribuční sady tohoto DBMS;
- QtScript - třídy pro práci s Qt skripty ;
- QtSvg - třídy pro zobrazování a práci s daty Scalable Vector Graphics ( SVG );
- QtXml - modul pro práci s modely XML , SAX a DOM jsou podporovány ;
- QtDesigner - třídy pro vytváření rozšíření pro vlastní widgety;
- QtUiTools - třídy pro zpracování v aplikaci formulářů Qt Designer;
- QtAssistant - systém nápovědy;
- Qt3Support - modul s třídami nezbytnými pro kompatibilitu s knihovnou Qt verze 3.x.x;
- QtTest - třídy pro podporu testování jednotek ;
- QtWebKit je modul WebKit integrovaný do Qt a dostupný prostřednictvím jeho tříd. (Zastaralé od Qt 5.6);
- QtWebEngine je modul Chromium integrovaný do Qt a dostupný prostřednictvím jeho tříd. V QT 6.3.0 je chromová verze 94.0 [29]
- QtXmlPatterns - modul pro podporu XQuery 1.0 a XPath 2.0;
- Phonon - modul pro podporu přehrávání a nahrávání videa a zvuku, a to jak lokálně, tak ze zařízení a po síti (od Qt 5 nahrazeno QtMultimedia);
- QtMultimedia - modul pro podporu přehrávání a nahrávání videa a zvuku, a to jak lokálně, tak ze zařízení a po síti;
- QtCLucene - modul pro podporu fulltextového vyhledávání , používaný v nové verzi Assistanta v Qt 4.4;
- ActiveQt je modul pro práci s technologiemi ActiveX a COM pro vývojáře Qt pod Windows .
- QtDeclarative je modul, který poskytuje deklarativní rámec pro vytváření dynamických uživatelských rozhraní.
Implementována je také technologie WoC - widgety na plátně, s jejichž pomocí je Plasma implementována v KDE 4.1. Widgety knihovny Qt bude možné používat přímo v appletech. Poskytuje rozvržení pro widgety na QGraphicsView se škálovatelností a různými grafickými efekty.
Knihovna používá svůj vlastní formát projektu, nazvaný soubor .pro, který obsahuje informace o tom, které soubory budou zkompilovány, které cesty mají hledat hlavičkové soubory a mnoho dalších informací. Následně se pomocí nástroje qmake použijí k vytvoření souboru makefile pro nástroj make kompilátoru. S Microsoft Visual Studio 2003/2005/2008/2010 je také možné pracovat s pomocí integrátorů . Integrace do Eclipse je od roku 2010 zastaralá.
Vývojáři Java mohou používat Qt pomocí rámce Qt Jambi od stejného dodavatele (oficiálně od roku 2009 společnost Qt Software zastavila vývoj tohoto rámce).
Dokumentace
Jednou z výhod rámce Qt je podrobná dokumentace [30] [31] doplněná velkým množstvím příkladů. Zdrojový kód příkladů obsahuje podrobné komentáře a popisy, což také usnadňuje učení Qt.
Použití
Qt se používá v Autodesk Maya , [32] [33] , Skype , Telegram , VLC Media Player [34] , VirtualBox , Mathematica [35] , European Space Agency [36] , DreamWorks [37] [38] , Google , HP [ 39] , Lucasfilm [40] , Panasonic [41] , Philips [42] , Samsung [43] , Siemens [44] , Volvo [45] a Walt Disney Animation Studios , CAO [46] , Google Earth , přehrávač médií CherryPlayer .
Kromě toho jsou na Qt založeny desktopové prostředí KDE , GUI mobilního OS MeeGo a Qt Creator , vývojové prostředí Qt;
Meta-objektový systém
Meta-objektový systém je součástí základního rámce pro podporu funkcí C++, jako jsou signály a sloty pro komunikaci mezi objekty v reálném čase a dynamické vlastnosti systému.
Systém metaobjektů obsahuje: třídu QObject, makro Q_OBJECTa obslužný program moc(překladač metaobjektů). QObject je základní třída pro všechny třídy Qt. Makro Q_OBJECTse používá k aktivaci funkcí metaobjektů ve třídách a v době kompilace funguje jako preprocesor, který převádí makro aplikace do zdrojového kódu C++.
Poznámky
- ↑ 1 2 https://my.safaribooksonline.com/0131872494/pref04
- ↑ Projekt qt Open Source na Open Hub: Stránka jazyků - 2006.
- ↑ 1 2 3 4 5 6 7 8 9 Adresář svobodného softwaru
- ↑ https://www.qt.io/blog/qt-6.4-released
- ↑ http://trolltech.com/company/newsroom/announcements/press.2008-01-18.1601592972
- ↑ Rozhovor s Eirik Eng a Matthias Ettrich z Trolltech (anglicky) (odkaz není k dispozici) (12. dubna 2004). Datum přístupu: 16. prosince 2011. Archivováno z originálu 3. února 2012.
- ↑ アーカイブされたコピー(nedostupný odkaz) . Získáno 3. srpna 2007. Archivováno z originálu dne 9. srpna 2007. (neurčitý)
- ↑ http://www.qtsoftware.com/products/qt/jambi/ (odkaz dolů)
- ↑ Qt framework pro QNX Archivováno 2. listopadu 2011 na Wayback Machine
- ↑ Změna I4352629a: Předběžná podpora Windows RT a Windows Phone Archivováno 23. října 2013 na Wayback Machine
- ↑ WinRT port Qt a jeho využití v C++/CX Archivováno 29. října 2013. (Angličtina)
- ↑ Qt Wiki – Podpora pro Linux/X11 . Projekt Qt (12. srpna 2011). Získáno 21. 8. 2013. Archivováno z originálu 1. 5. 2015. (neurčitý)
- ↑ Jørgen Lind. Víceprocesový maják . Projekt Qt (18. března 2011). Získáno 21. srpna 2013. Archivováno z originálu 18. června 2015. (neurčitý)
- ↑ Začínáme s Lighthouse . Získáno 25. listopadu 2011. Archivováno z originálu dne 27. dubna 2015. (neurčitý)
- ↑ Kristian Hogsberg. Přidat plugin wayland maják (nedostupný odkaz) (25. ledna 2011). Archivováno z originálu 3. února 2016. (neurčitý)
- ↑ Qt Wiki - Podpora pro Embedded Linux . Projekt Qt (12. srpna 2011). Získáno 10. dubna 2015. Archivováno z originálu 1. května 2015. (neurčitý)
- ↑ Nové funkce v Qt 5.1 – Podpora nových platforem . Digia (3. července 2013). Získáno 10. dubna 2015. Archivováno z originálu 23. dubna 2015. (neurčitý)
- ↑ Necessitas project (downlink) . Získáno 10. dubna 2015. Archivováno z originálu 20. února 2016. (neurčitý)
- ↑ Qt Wiki – Podpora pro OS X. Projekt Qt (14. srpna 2011). Získáno 21. srpna 2013. Archivováno z originálu 30. dubna 2015. (neurčitý)
- ↑ Podporované platformy . Získáno 1. února 2014. Archivováno z originálu 26. prosince 2014. (neurčitý)
- ↑ Qt Wiki – Podpora pro Windows . Projekt Qt (11. srpna 2011). Získáno 11. srpna 2013. Archivováno z originálu 30. dubna 2015. (neurčitý)
- ↑ Podpora Windows 10 v Qt . Společnost Qt (29. dubna 2015). Datum přístupu: 28. ledna 2016. Archivováno z originálu 19. ledna 2016. (neurčitý)
- ↑ Bjoern Breitmeyer. Stav podpory WinCE v Qt5 . KDAB (21. srpna 2013). Získáno 21. srpna 2013. Archivováno z originálu 18. června 2015. (neurčitý)
- ↑ Qt pro WinRT . Projekt Qt . Získáno 9. září 2014. Archivováno z originálu 14. července 2019. (neurčitý)
- ↑ Nové funkce v Qt 5.4 - Qt Wiki . Datum přístupu: 28. února 2016. Archivováno z originálu 29. února 2016. (neurčitý)
- ↑ Produktové stránky Qt, Podporované platformy . Qt - Product - Qt Framework . Společnost Qt. Získáno 21. listopadu 2014. Archivováno z originálu 20. listopadu 2014. (neurčitý)
- ↑ Blog Qt. Qt Commercial formálně podporuje QNX | Qt Blog (odkaz není dostupný) . blog.qt.digia.com. Získáno 19. března 2013. Archivováno z originálu 8. října 2013. (neurčitý)
- ↑ Blog Qt. Qt Commercial pro VxWorks | Qt Blog (odkaz není dostupný) . blog.qt.digia.com. Získáno 19. března 2013. Archivováno z originálu 19. dubna 2014. (neurčitý)
- ↑ QtWebEngine/ChromiumVersions – Qt Wiki . wiki.qt.io. _ Staženo: 24. srpna 2022. (neurčitý)
- ↑ Jono Bacon. Recenze : Qt . Mactech (2004). Datum přístupu: 16. září 2010. Archivováno z originálu 23. srpna 2011.
- ↑ Online referenční dokumentace (anglicky) (nepřístupný odkaz) . Nokia . Datum přístupu: 16. září 2010. Archivováno z originálu 23. srpna 2011.
- ↑ Qt v Autodesku (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt ve vizuálních efektech (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt ve VideoLan Player (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt dodalo pokročilé, multiplatformní C++ GUI pro vývojový tým Mathematica (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt v Evropské vesmírné agentuře (nedostupný odkaz) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Zákulisí DreamWorks Animation: Tvorba aplikací, které vytvářejí filmy (odkaz dolů) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ UI & System Design Challenges for NxG Lighting Tool (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Vývoj inovativních desktopových a vestavěných produktů HP s Qt (odkaz není k dispozici) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Lucasfilm Entertainment Company Ltd. (nedostupný odkaz) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Panasonic vybere Qt pro HD video systém (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt v IP komunikaci (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt v Home Media (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt pomohl společnosti Siemens dodat vývojovou platformu C++ pro výrobu softwarových GUI (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Volvo Mobility Systems (nepřístupný odkaz) . Archivováno z originálu 3. února 2012. (neurčitý)
- ↑ Qt pomohlo Waltu Disneymu zkrátit čas strávený vývojem jeho multiplatformní aplikace pro produkci celovečerních filmů (downlink) . Archivováno z originálu 3. února 2012. (neurčitý)
Literatura
- Max Schlee. Qt 5.3 Professional C++ programování. - Petrohrad. : BHV-Petersburg, 2015. - 928 s. — ISBN 978-5-9775-3346-1 .
- Borovský A. Qt 4.7+ Praktické programování v C++. - Petrohrad. : BHV-Petersburg, 2012. - 496 s. — ISBN 978-5-9775-0757-8 .
- Max Schlee. Qt 4.8 Professional C++ programování. - Petrohrad. : BHV-Petersburg, 2012. - 912 s. - ISBN 978-5-9775-0736-3 .
- Summerfield M. Qt. Profesionální programování. Vývoj multiplatformních aplikací v C++. - Petrohrad. : Symbol-Plus, 2011. - 560 s. - ISBN 978-5-93286-207-0 .
- Max Schlee. Qt 4.5 Professional C++ programování. - Petrohrad. : BHV-Petersburg, 2010. - 896 s. - ISBN 978-5-9775-0398-3 .
- J. Blanchet, M. Summerfield. Qt 4: GUI programování v C++. 2. přepracované vydání. - M. : Kudits-press, 2008. - 736 s. - ISBN 978-5-91136-059-7 .
- Zemskov Yu.V. Qt 4 s příklady. - Petrohrad. : "BHV-Petersburg", 2008. - 608 s. - ISBN 978-5-9775-0256-6 .
- Max Schlee. Qt 4: Profesionální programování v C++. - Petrohrad. : BHV-Petersburg, 2007. - 880 s. - ISBN 978-5-9775-0010-6 .
- Chebotarev A. Library Qt 4. Tvorba aplikací v prostředí Linuxu. - M . : Dialektika , 2006. - 256 s. — ISBN 5-8459-0996-1 .
Odkazy
Qt |
---|
Technika |
|
---|
Nástroje |
|
---|
Vazby |
|
---|
související témata |
|
---|
Toolkity (sady) prvků GUI |
---|
na nízké úrovni |
|
---|
vysoká úroveň | OS Amiga |
|
---|
MacOS a macOS |
- Kakao
- macapp
- MacZoop
- Elektrárna
|
---|
Okna |
|
---|
UNIX , pod X |
|
---|
Více platforem _ | Na bázi Flash |
|
---|
Založeno na XML, AJAX nebo SVG |
|
---|
Založený na Javě |
|
---|
Založeno na C nebo C++ |
|
---|
Založeno na Common Lisp |
|
---|
Založeno na Pascalu |
|
---|
Založeno na Pythonu |
|
---|
Na základě Objective-C |
|
---|
|
---|
|
---|