| Qt
| |
|---|---|
| Basisdaten
| |
| Maintainer | Volker Hilsheimer |
| Entwickler | Qt Project[1], The Qt Company |
| Erscheinungsjahr | 20. Mai 1995 |
| Aktuelle Version | 6.10[2] (7. Oktober 2025) |
| Aktuelle Vorabversion | 6.7 Beta 1[3] (20. Dezember 2023) |
| Betriebssystem | Unixartige mit X11, Linux mit Wayland[4], Windows, Windows Phone, Windows RT, Windows CE, Symbian OS (bis Qt 4.8[5][6]), Android, SailfishOS, macOS, iOS, QNX/Blackberry 10[7] |
| ProgrammierÂsprache | C++ |
| Kategorie | GUI-Toolkit |
| Lizenz | Duales Lizenzsystem ProprietÀr und GPL Version 3, LGPL Version 2.1,[8] LGPL Version 3[9] |
| deutschsprachig | ja |
| qt.io | |
Qt ([] wie englisch cute[10]) ist ein Anwendungsframework und GUI-Toolkit zur plattformĂŒbergreifenden Entwicklung von Programmen und grafischen BenutzeroberflĂ€chen. DarĂŒber hinaus bietet Qt umfangreiche Funktionen zur Internationalisierung sowie Datenbankfunktionen und XML-UnterstĂŒtzung an und ist fĂŒr eine groĂe Zahl an Betriebssystemen bzw. Grafikplattformen wie X11 (Unix-Derivate), macOS, Windows, iOS und Android erhĂ€ltlich. Qt wird insbesondere vom KDE-Projekt in den Bibliotheken der KDE Plasma Workspaces und der KDE Frameworks verwendet, die gleichzeitig die prominentesten Vorzeigebeispiele darstellen.
Qt ist quelloffen und mehrfachlizenziert: fĂŒr Open-Source-Programmierung unter der GNU General Public License (GPL) und ab Version 4.5 zusĂ€tzlich unter der GNU Lesser General Public License (LGPL); fĂŒr die Nutzung in nicht quelloffenem Code sind kommerzielle Lizenzen erhĂ€ltlich.
Qt ist in C++ entwickelt und verwendet einen PrĂ€prozessor, genannt moc (meta object compiler), womit C++ um zusĂ€tzliche Elemente erweitert wird, beispielsweise Signale und Slots sowie Introspektion. Der so erzeugte Quelltext folgt dem C++-Standard, so dass er mit handelsĂŒblichen Compilern ĂŒbersetzt werden kann. Es gibt auch Anbindungen fĂŒr andere Programmiersprachen, die gröĂtenteils von der Community bzw. von Drittanbietern zur VerfĂŒgung gestellt werden, unter anderem fĂŒr Python (PyQt, PySide), Ruby (QtRuby), C# (Qyoto-Projekt, QtSharp), Java (Qt Jambi), PHP (PHP-Qt), D (QtD), Haskell (Qtah), Perl (PerlQt), Pascal (Qt4Pas) und Ada (QtAda).
Geschichte
[Bearbeiten | Quelltext bearbeiten]AnfÀnge und Namensentwicklung
[Bearbeiten | Quelltext bearbeiten]1991 begannen die norwegischen Programmierer Haavard Nord und Eirik Chambe-Eng mit der Entwicklung von Qt. Drei Jahre spĂ€ter grĂŒndeten sie das Unternehmen Quasar Technologies, das spĂ€ter in Trolltech umbenannt wurde.
Der Name Qt stammt daher, dass das Q nach Haavard Nords Geschmack besonders schön in seinem Emacs anzusehen war und das t an Xt (das X-Toolkit) erinnerte.[11] Ausgesprochen wird Qt offiziell wie das englische Wort cute.[10] Dieses Wort soll die Ansicht der Entwickler ausdrĂŒcken, dass der Quelltext und die API von Qt eben cute seien, was auf Deutsch unter anderem so viel wie sĂŒĂ, hĂŒbsch usw., aber auch pfiffig heiĂt.
| Datum | Version |
|---|---|
| 10. Juli 1998 | 1.40 |
| 2. Oktober 1998 | 1.41 |
| 19. Dezember 1998 | 1.42 |
| 13. MĂ€rz 1999 | 1.44 |
| 26. Juni 1999 | 2.0 |
| 13. April 2000 | 2.1 |
| 7. Dezember 2000 | 2.2 |
| 8. MĂ€rz 2001 | 2.3 |
| 16. Oktober 2001 | 3 |
| 14. November 2001 | 3.1 |
| 24. Juli 2003 | 3.2 |
| 5. Februar 2004 | 3.3 |
| 29. Juni 2005 | 4 |
| 20. Dezember 2005 | 4.1 |
| 4. Oktober 2006 | 4.2 |
| 30. Mai 2007 | 4.3 |
| 6. Mai 2008 | 4.4 |
| 3. MĂ€rz 2009 | 4.5 |
| 1. Dezember 2009 | 4.6 |
| 21. September 2010 | 4.7 |
| 15. Dezember 2011 | 4.8 |
| 28. MĂ€rz 2012 | 4.8.1 |
| 22. Mai 2012 | 4.8.2 |
| 13. September 2012 | 4.8.3 |
| 29. November 2012 | 4.8.4 |
| 2. Juli 2013 | 4.8.5 |
| 24. April 2014 | 4.8.6 |
| 25. Mai 2015 | 4.8.7 |
| 19. Dezember 2012 | 5.0.0 |
| 19. MĂ€rz 2013 | 5.0.1[12] |
| 3. Juli 2013 | 5.1.0 |
| 12. Dezember 2013 | 5.2.0 |
| 12. MĂ€rz 2014 | 5.2.1[13] |
| 20. Mai 2014 | 5.3.0 |
| 25. Juni 2014 | 5.3.1 |
| 16. September 2014 | 5.3.2 |
| 10. Dezember 2014 | 5.4 |
| 24. Februar 2015 | 5.4.1 |
| 12. Juni 2015 | 5.4.2[14] |
| 1. Juli 2015 | 5.5 |
| 15. Oktober 2015 | 5.5.1 |
| 15. MĂ€rz 2016 | 5.6.0 |
| 8. Juni 2016 | 5.6.1 |
| 8. August 2016 | 5.6.2[15] |
| 8. Oktober 2016 | 5.6.3[16] |
| 16. Juni 2016 | 5.7.0 |
| 13. Dezember 2016 | 5.7.1 |
| 23. Januar 2017 | 5.8.0[17] |
| 31. Mai 2017 | 5.9.0[18] |
| 30. Juni 2017 | 5.9.1[19] |
| 6. Oktober 2017 | 5.9.2[20] |
| 22. November 2017 | 5.9.3[21] |
| 23. Januar 2018 | 5.9.4[22] |
| 12. April 2018 | 5.9.5[23] |
| 11. Juni 2018 | 5.9.6[24] |
| 23. Oktober 2018 | 5.9.7[25] |
| 18. April 2019 | 5.9.8[26] |
| 17. Dezember 2019 | 5.9.9[27] |
| 7. Dezember 2017 | 5.10.0[28] |
| 13. Februar 2018 | 5.10.1[29] |
| 22. Mai 2018 | 5.11.0[30] |
| 19. Juni 2018 | 5.11.1[31] |
| 20. September 2018 | 5.11.2[32][33] |
| 4. Dezember 2018 | 5.11.3[34] |
| 6. Dezember 2018 | 5.12.0[35] |
| 1. Februar 2019 | 5.12.1[36] |
| 15. MĂ€rz 2019 | 5.12.2[37] |
| 17. April 2019 | 5.12.3[38] |
| 17. Juni 2019 | 5.12.4[39] |
| 11. September 2019 | 5.12.5[40] |
| 13. November 2019 | 5.12.6[41] |
| 31. Januar 2020 | 5.12.7[42] |
| 8. April 2020 | 5.12.8[43] |
| 17. Juni 2020 | 5.12.9[44] |
| 25. Mai 2021 | 5.12.11[45] |
| 26. November 2021 | 5.12.12[46] |
| 19. Juni 2019 | 5.13.0[47] |
| 5. September 2019 | 5.13.1[48] |
| 31. Oktober 2019 | 5.13.2[49] |
| 19. Dezember 2019 | 5.14.0[50] |
| 27. Januar 2020 | 5.14.1[51] |
| 1. April 2020 | 5.14.2[52] |
| 26. Mai 2020 | 5.15.0[53] |
| 10. September 2020 | 5.15.1[54] |
| 20. September 2020 | 5.15.2[55] |
| 8. Dezember 2020 | 6.0[56] |
| 3. Februar 2021 | 6.0.1[57] |
| 3. MĂ€rz 2021 | 6.0.2[58] |
| 31. MĂ€rz 2021 | 6.0.3[59] |
| 4. Mai 2021 | 6.0.4[60] |
| 6. Mai 2021 | 6.1[61] |
| 7. Juni 2021 | 6.1.1[62] |
| 1. Juli 2021 | 6.1.2[63] |
| 1. September 2021 | 6.1.3[64] |
| 30. September | 6.2[65] |
| 27. Oktober 2021 | 6.2.1[66] |
| 1. Dezember 2021 | 6.2.2[67] |
| 31. Januar 2022 | 6.2.3[68] |
| 21. MĂ€rz 2022 | 6.2.4[69] |
| 12. April 2022 | 6.3[70] |
| 14. Juni 2022 | 6.3.1[71] |
| 12. September | 6.3.2[72] |
| 29. September 2022 | 6.4[73] |
| 15. November 2022 | 6.4.1[74] |
Ăbernahmen durch Nokia und Digia
[Bearbeiten | Quelltext bearbeiten]Anfang 2008 wurde Trolltech von Nokia fĂŒr 150 Mio. US-Dollar aufgekauft[75] und die Entwicklung in der Sparte Qt Development Frameworks fortgefĂŒhrt. Im Jahr 2011 hat Nokia das Projekt unter dem Namen Qt-Project als freie Software in die HĂ€nde der Open-Source-Community gegeben[76] und das GeschĂ€ft mit der kommerziellen Lizenzierung und die ServicevertrĂ€ge fĂŒr eine unbekannte Summe an Digia verkauft.[77] Im August 2012 wurden auch die restlichen Teile, wie das ServergeschĂ€ft und die Entwicklungsabteilung, fĂŒr 4 Mio. âŹ[75] an Digia abgegeben.[78] Im August 2014 lagerte Digia die Entwicklung von Qt in ein Tochterunternehmen namens The Qt Company aus. In dem Zug wurde die zwischenzeitlich getrennt stattfindende Entwicklung der Open Source Edition und der kommerziellen Editionen wieder vereint.[79]
Lizenzierung
[Bearbeiten | Quelltext bearbeiten]Kontroverse Auseinandersetzungen entstanden um das Jahr 1998, als sich abzeichnete, dass KDE sich als Standard-Desktop unter Linux durchsetzen wĂŒrde. Da KDE zum groĂen Teil auf Qt basiert, machte sich ein groĂer Teil der Open-Source- und Freie-Software-Gemeinde Sorgen, dass ein so wichtiger Teil des Systems unter kommerzieller Kontrolle stand. Das fĂŒhrte zu zwei Entwicklungen: Erstens wurde das Harmony-Toolkit entwickelt, das die Funktionen von Qt exakt kopieren, jedoch unter einer Freie-Software-Lizenz stehen sollte. Zweitens begann die Arbeit an der Desktop-Umgebung Gnome, die Ă€hnliche Funktionen wie KDE bieten sollte, allerdings das freie, in C geschriebene Toolkit GTK verwendet.
Bis Version 1.45 verwendete Trolltech die FreeQt-License fĂŒr Qt. Diese war weder eine Open-Source- noch eine freie Lizenz. Es war zwar erlaubt, den Quellcode einzusehen, modifizierte Versionen durften allerdings nicht veröffentlicht werden. Mit dem Erscheinen von Version 2.0 wechselte Trolltech zur Q Public License (QPL), einer Open-Source-Lizenz, die aber von der Free Software Foundation als inkompatibel zur GPL eingestuft wurde. Darauf (im Jahr 1998) wurde die KDE Free Qt Foundation ins Leben gerufen, um zu verhindern, dass Qt im Falle einer Insolvenz oder Ăbernahme von Trolltech unter eine restriktivere Lizenz als die QPL fiele. Sie besteht aus jeweils zwei Vertretern von Trolltech und dem KDE e. V., wobei letztere im Zweifelsfall bei Abstimmungen die Mehrheit haben. Falls Trolltech lĂ€nger als zwölf Monate keine Aktualisierungen (Updates) unter einer Open-Source-Lizenz liefern sollte, ist die âKDE Free Qt Foundationâ berechtigt, die letzte freie Qt-Version unter der BSD-Lizenz freizugeben.[80]
Als der Druck auf Trolltech gröĂer wurde und das Debian-Projekt sich wegen Lizenzproblemen weigerte, KDE zu vertreiben,[81] Ă€nderte Trolltech im Jahr 2000 die Lizenz fĂŒr die Linux-Variante des Toolkits. Ab Version 2.2 gab es fortan die Linux-Variante unter zwei Lizenzen: der GPL und der QPL (siehe Duales Lizenzsystem).
Die Windows-Variante war jedoch nach wie vor ausschlieĂlich unter einer kommerziellen Lizenz verfĂŒgbar. Auch die gegen Ende des Jahres 2001 veröffentlichte Mac-OS-X-Variante war nur unter einer kommerziellen Lizenz erhĂ€ltlich, bis im Juni 2003 Trolltech die Version 3.2 der Mac-OS-X-Variante auch unter die GPL stellte. Im Februar 2005 kĂŒndigte Trolltech schlieĂlich an, Qt ab der Version 4.0 auch fĂŒr die Windows-Plattform unter die GPL stellen zu wollen.[82] Das bestĂ€tigte sich, als im Juni 2005 Trolltech ein einheitliches duales Lizenzsystem fĂŒr alle unterstĂŒtzten Plattformen veröffentlichte. Heute gibt es fĂŒr jede Plattform proprietĂ€re und Open-Source-Edition (GPL-Edition).
Ab der Version 4.3.1 vom 9. August 2007 rĂ€umt Trolltech Ausnahmen bei der durch die GPL lizenzierten Open-Source-Version ein, die es ermöglicht, Programme, die Qt benutzen, unter einer nicht-GPL-kompatiblen Lizenz zu veröffentlichen. Die akzeptierten Lizenzen sind namentlich in einer separaten Liste aufgefĂŒhrt. Weiterhin muss der Quellcode des Programms des Unternehmens Trolltech im selben AusmaĂ zugĂ€nglich gemacht werden, wie er auch anderen Benutzern zur VerfĂŒgung steht, und die Rechte des Autors, Diskussionen ĂŒber das Programm zu fĂŒhren und den Quellcode fĂŒr jeden zugĂ€nglich zu machen, dĂŒrfen nicht durch Rechtsmittel (wie beispielsweise zusĂ€tzliche VertrĂ€ge) beschnitten werden.[83][84]
Seit Anfang 2008 werden die Versionen von Qt auch unter der dritten Version der GPL veröffentlicht.[85]
Im MĂ€rz 2009 wurde Qt in Version 4.5 erstmals unter der LGPL veröffentlicht.[86] Durch die LGPL ist es möglich, auch ohne eine kostenpflichtige Lizenz proprietĂ€re Software mit Qt zu entwickeln, ohne den Quellcode veröffentlichen zu mĂŒssen. Lediglich bei Ănderungen am Quellcode von Qt selbst mĂŒssen diese Ănderungen als Quellcode veröffentlicht werden. DarĂŒber hinaus sind die lizenzbedingten EinschrĂ€nkungen zu beachten. So darf beispielsweise nur unter strengen Bedingungen statisch gelinkt werden. Auch muss das Framework in unverĂ€nderter Form verwendet werden.[87]
Seit September 2014 wurde eine kostengĂŒnstige Edition von Qt namens Indie Mobile angeboten, die es erlaubte, mit Qt erstellte mobile Anwendungen in Verkaufsportalen wie Google Play und Apples App Store zu vertreiben, was aufgrund technischer EinschrĂ€nkungen und den Nutzungsbedingungen der Verkaufsportale hĂ€ufig nicht unter den Bedingungen der LGPL möglich ist. Der Quellcode durfte im Gegensatz zu den teureren kommerziellen Editionen aber nur in unverĂ€nderter Form verwendet werden.[88] Mit dem Erscheinen von Qt 5.5 im Juli 2015 wurde die Indie Mobile Edition jedoch eingestellt.[89]
Ănderungshistorie
[Bearbeiten | Quelltext bearbeiten]Qt 4
[Bearbeiten | Quelltext bearbeiten]Mit Qt 4.0 vom 28. Juni 2005 hat Trolltech fĂŒnf neue Techniken eingefĂŒhrt:
- Tulip â Ein Satz neuer Container-Klassen
- Interview â Eine MVC-Architektur fĂŒr elementbasierte Ansichten
- Arthur â Ein neues 2D-Zeichenframework
- Scribe â Unicode-Textausgabe mit öffentlicher API zur UnterstĂŒtzung von einfachen Textlayouts
- MainWindow â Eine modernere Hauptfenster-Architektur, die Symbolleisten, MenĂŒs und andockbare Fenster ermöglicht
Qt 4.1 wurde am 19. Dezember 2005 veröffentlicht und brachte SVG-Tiny-UnterstĂŒtzung, ein PDF-Backend zum Qt-Drucksystem, und weitere Erweiterungen und Verbesserungen.[90]
Qt 4.2 erschien am 4. Oktober 2006 und brachte native CSS-UnterstĂŒtzung zum Gestalten von Widgets. Auch wurden die QCanvas-Klassen von Qt 3.x zur Darstellung von zweidimensionalen Grafikobjekten durch ein Framework namens QGraphicsView zum Rendern von Grafikobjekten auf dem Bildschirm ersetzt.[91]
Seit dem 30. Mai 2007 steht Version 4.3 zur VerfĂŒgung. Sie brachte erweiterte Windows-Vista-UnterstĂŒtzung, eine verbesserte OpenGL-Engine, sowie die Möglichkeit, SVG-Dateien zu erzeugen. AuĂerdem wurden eine ECMAScript-Engine namens QtScript und die UnterstĂŒtzung von SSL-Verbindungen hinzugefĂŒgt.[92]
Qt 4.4 wurde am 6. Mai 2008 veröffentlicht.[93] Sie enthĂ€lt erstmals UnterstĂŒtzung fĂŒr Windows CE, verwendet WebKit als HTML-Rendering-Engine und eine verbesserte API zur Programmierung von Anwendungen mit mehreren Threads.
Seit dem 3. MĂ€rz 2009 gibt es mit Qt 4.5 die neue Entwicklungsumgebung Qt Creator, womit Anwendungen fĂŒr Linux, Mac OS X und Windows ohne zusĂ€tzliche Entwicklungswerkzeuge erzeugt werden können.[94]
Am 1. Dezember 2009 wurde Qt in der Version 4.6 veröffentlicht, welche nun auch Multi-Touch und die Plattformen Symbian OS und MeeGo unterstĂŒtzt.[95]
Seit dem 21. September 2010 ist die Version 4.7 verfĂŒgbar. Mit dieser Version hĂ€lt die deklarative Qt Meta Language oder Qt Modeling Language (QML) Einzug in die Bibliothek.[96]
Am 15. Dezember 2011 wurde Qt in der Version 4.8 veröffentlicht. Die neue Version bietet die Qt Platform Abstraction, Thread-UnterstĂŒtzung fĂŒr OpenGL und Multithread-UnterstĂŒtzung fĂŒr HTTP sowie einen optimierten Dateisystemzugriff.[97] Diese Version hat Long Term Support (LTS) und wurde hier erst von Version 5.6 LTS in diesem abgelöst.[98]
Qt 5
[Bearbeiten | Quelltext bearbeiten]Qt 5.0 wurde am 19. Dezember 2012 veröffentlicht. Die neue Hauptversion bringt u. a. einen OpenGL-basierten Szenengraphen, der das Zeichnen von OberflĂ€chen, die in Qts eigener Programmiersprache QML â auch Qt Meta Language oder Qt Modeling Language genannt â geschrieben sind, beschleunigen soll. Zudem wurde QtQuick um neue Möglichkeiten fĂŒr grafische Effekte auf Basis von OpenGL sowie ein Canvas-basiertes System zum imperativen Zeichnen in QtQuick erweitert. FĂŒr Linux bietet Qt 5 neben dem X Window System auch UnterstĂŒtzung fĂŒr das neuere Wayland. Weiterhin bietet die neue Version Funktionen zum Umgang mit JSON und bessere UnterstĂŒtzung fĂŒr IPv6. Die in Qt integrierte Browser-Engine QtWebkit soll nun volle UnterstĂŒtzung fĂŒr HTML5 haben. Die wohl wichtigste Ănderung ist jedoch die weitere Modularisierung der Bibliothek, die einfachere Handhabung des Codes ermöglichen und einen geringeren Speicherverbrauch fĂŒr Anwendungen bringen soll, die nur spezielle Teile der Bibliothek verwenden. Vor allem die weitere Modularisierung hat zur Folge, dass Qt 5.0 nicht ABI- und nicht API-kompatibel zu Qt 4.8 ist. Es wurde jedoch versucht, eine möglichst weitreichende API-KompatibilitĂ€t zu erreichen, der Sprung von Qt 4 auf Qt 5 stellt also keinen so starken Bruch dar wie der Versionssprung 3 auf 4.[99][100]
Qt 5.1 wurde am 3. Juli 2013 prĂ€sentiert. GegenĂŒber der alten Version sind 3000 Verbesserungen eingeflossen, auĂerdem gibt es eine vorlĂ€ufige iOS- und Android-UnterstĂŒtzung.[101] Deren vollstĂ€ndige UnterstĂŒtzung wurde in Qt 5.2 fertiggestellt. Qt 5.3 erhielt eine experimentelle UnterstĂŒtzung fĂŒr WinRT.
In Version 5.4 wurde das Modul Qt WebEngine basierend auf Chromium zur Darstellung von Webseiten hinzugefĂŒgt, welches das dazu bisher vorhandene Modul Qt Webkit auf Basis der WebKit-Engine ablösen soll. Bis mindestens Qt 6.0 sollen jedoch noch beide Engines parallel unterstĂŒtzt werden.[102] DarĂŒber hinaus wird WinRT seit dieser Version vollstĂ€ndig unterstĂŒtzt.[103]
In Version 5.5 wurde die Aufteilung der Editionen ĂŒberarbeitet.[104]
In Version 5.6 steht 3 Jahre Long Term Support (LTS) zur VerfĂŒgung und löst damit Qt 4.8 LTS ab. High-dpi in User Interfaces und UnterstĂŒtzung fĂŒr Windows 10 und OSX 10.11 sowie OpenGL ES 3 sind hier Schwerpunkt der Verbesserungen.[105] Der Support fĂŒr 5.6 LTS endete im MĂ€rz 2019.[106]
Die am 16. Juni 2016 veröffentlichte Version 5.7 baute vollstĂ€ndig auf C++11 auf. Zudem wurde die Multithreading-3D-Engine Qt 3D, die davor nur als technische Preview vorhanden war, hinzugefĂŒgt.[107][108]
Version 5.8, die am 23. Januar 2017 prĂ€sentiert wurde, enthielt als wichtigste Ănderung eine neue Grafikarchitektur, die das Qt-Quick-Modul von der Grafikbibliothek OpenGL entkoppelte. AuĂerdem wurde das Qt-Lite-Projekt eingefĂŒhrt. Dabei handelt es sich um ein Projekt, das sich primĂ€r auf die Entwicklung fĂŒr EndgerĂ€te mit geringem Speicher konzentriert.[109][110]
In Version 5.9, die am 31. Mai 2017 veröffentlicht wurde, wurde das Qt-Gamepad-Modul eingefĂŒhrt, das einen direkten Zugriff auf SpielsteuergerĂ€te ermöglichen soll und bisher nur als Preview vorlag.[111][112] Diese Version erhielt 3 Jahre Long Term Support (LTS), welcher am 31. Mai 2020 endete.[113]
Mit Qt 5.10 wurde erstmals die Vulkan-API unterstĂŒtzt. AuĂerdem wurden eine neue Sprach- und Handschrifterkennungen im Qt Virtual Keyboard, UnterstĂŒtzung fĂŒr OAuth 1 und OAuth 2 und Text-zu-Sprach-FunktionalitĂ€t hinzugefĂŒgt.[114][115]
Version 5.11 wurde am 22. Mai 2018 veröffentlicht. Darin wurde die Compiler-Pipeline fĂŒr die Qt QML Engine, die den Code der Qt Meta-object Language (QML) liest und kompiliert, komplett neu geschrieben. Diese Ănderung wĂŒrde laut den Entwicklern einen groĂen Geschwindigkeitsvorteil mit sich bringen. AuĂerdem wurde im Zuge des Releases auch Qt for Python 5.11 veröffentlicht. Dabei handelt es sich um eine Ăberarbeitung von PySide 2 seitens der Qt Company.[116][117][118]
Version 5.12 wurde am 6. Dezember 2018 veröffentlicht. Es handelt sich dabei um eine Long Term Support (LTS) Version, die drei Jahre lang unterstĂŒtzt wird.[35]
Qt 6
[Bearbeiten | Quelltext bearbeiten]Qt 6 ist im Dezember 2020 erschienen.[119]
Version 6.1 folgte am 6. Mai 2021.[120]
Version 6.2 gab es am 30. September 2021 in einer neuen LTS-Version.[121]
Version 6.6.1 wurde am 27. November 2023 veröffentlicht.[122]
Version 6.7 wurde am 4. April 2024 veröffentlicht.[123]
UnterstĂŒtzte Plattformen
[Bearbeiten | Quelltext bearbeiten]Es gibt derzeit folgende Varianten des Qt Frameworks:[7]
- Qt for Linux/X11 â Qt fĂŒr das X Window System, das unter Unix und Unix-Derivaten wie Linux, AIX, HP-UX und Solaris lĂ€uft.
- Qt for Linux/Wayland â Qt fĂŒr den Display-Server Wayland unter Linux.[4]
- Qt for Windows â Qt fĂŒr Windows (XP und neuere). Es stehen 32 und 64 bit Versionen fĂŒr den Microsoft Visual Studio C++ Compiler bereit. Die MinGW-Variante steht nach wie vor nur als 32 bit Version bereit.
- Qt for Windows RT â Seit Qt 5.3 wird ebenso Windows RT, einschlieĂlich Windows Phone, unterstĂŒtzt.
- Qt for OS X/Cocoa â Qt fĂŒr Apples macOS-Desktop-Betriebssystem und das Cocoa-Framework. VollstĂ€ndig unterstĂŒtzt wird OS X ab Version 10.7. OS X 10.6 wird mit EinschrĂ€nkungen unterstĂŒtzt.
- Qt for embedded Linux (ehemals Qtopia Core, ehemals Qt/Embedded) â Mit Qt/Embedded stellte Trolltech eine Variante vor, die den Linux-Framebuffer statt des X-Window-Systems benutzt. Diese wird vor allem in eingebetteten GerĂ€ten auf Linux-Basis eingesetzt, zum Beispiel auf PDAs, Smartphones und Embedded Linux.
- Qt for Windows CE â Qt fĂŒr Windows CE und Windows Mobile
- Qt for iOS â Qt fĂŒr Apples mobiles Betriebssystem iOS (seit Qt 5.2)
- Qt for Android â Qt fĂŒr Android (seit Qt 5.2)
- Qt for Sailfish OS â Qt fĂŒr Jollas mobiles Betriebssystem Sailfish OS
- Qt for QNX / BlackBerry 10 â Qt fĂŒr das Echtzeitbetriebssystem QNX sowie fĂŒr Blackberry 10, welches auf QNX basiert.
- In der kommerziellen Enterprise-Edition werden zusĂ€tzlich die Echtzeitbetriebssysteme VxWorks und Integrity unterstĂŒtzt.[124]
Mit neueren Versionen von Qt wurde der Support fĂŒr manche Plattformen eingestellt. Dazu gehören:
- Qt for the Symbian platform â Mit Qt 5 wurde die UnterstĂŒtzung von Nokias Symbian-Smartphone-Betriebssystem eingestellt.[6]
- Qt for OS X/Carbon â Das Carbon-Framework von OS X wird seit Qt 5 nicht mehr unterstĂŒtzt.
- Qt for Maemo â Qt fĂŒr Nokias Maemo-Smartphone-Betriebssystem (seit Qt 5 nur noch inoffiziell)[125]
- Neben dem Qt Toolkit existierte noch Qt Extended (ehemals Qtopia), eine PDA- und Smartphone-Plattform basierend auf Qt/Embedded. Bekannt wurde sie vor allem durch den Zaurus-PDA von Sharp. Die Entwicklung wurde jedoch am 3. MĂ€rz 2009 eingestellt, um nicht neben Qt eine parallele Entwicklung zu betreiben.[126]
Externe Portierungen
[Bearbeiten | Quelltext bearbeiten]Nachdem Nokia den Qt-Quellcode veröffentlicht hat, sind noch verschiedene Portierungen fĂŒr folgende Plattformen entstanden, die teilweise noch sehr experimentell sind: OpenSolaris,[127] Haiku,[128] OS/2 eCS platform,[129] AmigaOS 4,[130] HP webOS (Palm Pre),[131][132] Amazon Kindle DX.[133]
Editionen
[Bearbeiten | Quelltext bearbeiten]Derzeit gibt es die Editionen Qt Open Source, Qt for Application Development und Qt for Device Creation. Die Qt Open Source Edition kann kostenlos unter den Bedingungen der GPL- oder LGPL auch fĂŒr kommerzielle Zwecke genutzt werden. FĂŒr die Nutzung der restlichen Editionen fallen monatliche GebĂŒhren an, dafĂŒr werden KĂ€ufer dieser Editionen weitere Freiheiten eingerĂ€umt. So können Ănderungen an Qt vorgenommen werden, ohne dass diese veröffentlicht werden mĂŒssen. DarĂŒber hinaus enthalten die kommerziellen Editionen offizielle ProduktunterstĂŒtzung seitens des Herstellers von Qt.[124]
Bis einschlieĂlich Version 4.4 wurde zwischen den Versionen Qt Console (fĂŒr die Entwicklung von Programmen ohne GUI), Qt Desktop Light (es fehlen Netzwerk-, Datenbank- und OpenGL-UnterstĂŒtzung sowie das Graphics View), Qt Desktop (die vollstĂ€ndige Bibliothek) und der Open Source Edition (die vollstĂ€ndige Bibliothek zur Entwicklung von Open-Source-Anwendungen) unterschieden. Diese Unterteilung existiert heute nicht mehr.
Von anderen Anbietern
[Bearbeiten | Quelltext bearbeiten]Da es sich bei Qt um Freie Software handelt, gibt es auch Editionen anderer Anbieter:
- Qt/Windows Free Edition â Das KDE/Cygwin-Projekt arbeitete an einer nativen Windows-Version von Qt 3, im Blick auf KDE, die vom freien Quellcode der Qt/X11-Variante portiert worden ist und somit auch vollstĂ€ndig GPL-lizenziert ist. Das Projekt wurde gestartet, um auch freie Software fĂŒr Windows programmieren zu können. Mit dem Erscheinen von Qt 4 hat dieses Bestreben an Aufmerksamkeit verloren und wird nur noch mit kleineren Patches vom qtwin-Projekt weiter gepflegt. In Zukunft will sich das Projekt weiter um Patches zur Qt Open Source Edition von Qt Development Frameworks bemĂŒhen, so dass diese dann auch andere Compiler (Microsoft, Borland und Embarcadero Technologies) unterstĂŒtzt.
- Das Trinity-Projekt, das eine Abspaltung von KDE 3 entwickelt, pflegt eine Abspaltung von Qt 3 und sieht sich seit November 2011 als zentrale Anlaufstelle fĂŒr die Qt-3-Entwicklung, nachdem Nokia die Entwicklung eingestellt hatte.[134] Von Seiten Nokias verweist Knut Yrvin, Community Manager bei Trolltech/Nokia[135] auf Trinity.[136]
Design
[Bearbeiten | Quelltext bearbeiten]
Bibliotheksaufbau
[Bearbeiten | Quelltext bearbeiten]Ab Version 4 ist die gesamte Bibliothek in Module gegliedert,[137] wodurch kleinere und schnellere Programme möglich sind, da nur die verwendeten Module eingebunden werden mĂŒssen. In Version 5 wurde die Modularisierung weiter vorangetrieben, zudem wird nun zwischen Qt Essentials (Basiskomponenten) und Qt Add-Ons (zusĂ€tzliche Module fĂŒr spezielle Einsatzzwecke) unterschieden.
In Qt Essentials sind die folgenden Module enthalten:
- Qt Core â Kern-Klassen, die von allen anderen Modulen genutzt werden
- Qt Gui â Basisklassen zur Gestaltung von grafischen BenutzeroberflĂ€chen (GUIs), beinhaltet die UnterstĂŒtzung von OpenGL
- Qt Widgets â Komponenten zum Erstellen von GUIs in der Programmiersprache C++
- Qt QML â Klassen zur Verarbeitung der Skriptsprachen QML und JavaScript
- Qt Quick â Komponenten zum Erstellen von GUIs durch QML
- Qt Network â Klassen zur Netzwerk-Programmierung
- Qt Multimedia â Low-Level-Zugriff auf MultimediagerĂ€te und -dateien
- Qt Multimedia Widgets â Zugriff auf MultimediagerĂ€te und -dateien durch Widgets
- Qt Sql â Klasse zur Datenbankintegration mit SQL
- Qt Test â Werkzeuge zum Testen der eigenen Anwendungen
- Qt WebKit â Klassen zur Darstellung von Webseiten, basierend auf der WebKit-Engine
Zu den Qt Add-Ons gehören unter anderem Module fĂŒr zusĂ€tzliche Bildformate (Qt SVG / Qt Image Formats), Module zum Zugriff auf Hardware in Smartphones und Tablets (Qt Bluetooth / Qt NFC / Qt Sensors), sowie das in Version 5.4 vorgestellte Modul Qt WebEngine zur Darstellung von Webseiten basierend auf der Chromium-Engine.
In den kommerziellen Editionen sind â je nach Edition â zusĂ€tzliche Module enthalten, zum Beispiel zur Visualisierung von Daten (Qt Charts / Qt Data Visualisation).
Programmierbeispiel
[Bearbeiten | Quelltext bearbeiten]Das folgende Beispiel erzeugt ein Fenster mit einem Titel, der aufgrund der geringen FenstergröĂe allerdings versteckt ist, einem Beschriftungsfeld (Label) und einer SchaltflĂ€che (Button). Die Funktionen werden mittels âsignalsâ und âslotsâ verbunden, so dass das Programm bei einem Klick auf den Button beendet wird. Die beiden Widgets werden anschlieĂend im Hintergrund gezeichnet und das Fenster schlieĂlich angezeigt. Das Beispielprogramm wird mit dem Aufruf von qmake -project && qmake && make innerhalb des Ordners kompiliert, in dem sich die Datei befindet.

#include <QtGui>
int main(int argc, char **argv) {
// Eine QApplication stellt immer die Basis dar
QApplication app(argc, argv);
// Ein Fenster mit einem Titel erzeugen
QWidget window;
window.setWindowTitle("Qt4-Example");
// Ein Label mit einem Text erzeugen
QLabel *label = new QLabel("Hello World!");
label->setAlignment(Qt::AlignCenter);
// Eine SchaltflĂ€che mit TastenkĂŒrzel Alt-E erzeugen, welche die Anwendung beendet
QPushButton *button = new QPushButton("&Exit");
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
// Sowohl das Label als auch die SchaltflÀche vertikal ausrichten
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(button);
window.setLayout(layout);
// Das Fenster anzeigen, die Anwendung starten und ihr Ergebnis (an das Betriebssystem) zurĂŒckliefern
window.show();
return app.exec();
}
BenutzeroberflÀchen können mit Qt entweder explizit programmiert oder mit dem Qt-Designer gestaltet werden.
Signal-Slot-Konzept
[Bearbeiten | Quelltext bearbeiten]Eine Besonderheit ist die Verwendung von âsignalsâ und âslotsâ, die auf einfache Art und Weise die Kommunikation zwischen einzelnen Objekten ermöglichen. Ein Objekt sendet (emittiert) ein Signal, was zum Aufruf einer Methode eines anderen Objekts fĂŒhrt, wenn diese als EmpfĂ€nger (Slot) registriert ist. Das Konzept kann als Anwendung des Beobachter-Entwurfsmusters angesehen werden.
Anders als bei der Verwendung von Funktionszeigern bzw. RĂŒckruffunktionen ermöglicht das Konzept von Qt die lose Kopplung zwischen Modulen, d. h. Aufrufer und aufgerufenes Objekt mĂŒssen sich nicht zwangslĂ€ufig kennen. Dadurch können die beteiligen Objekte vollstĂ€ndig unabhĂ€ngig voneinander gehalten werden. Ein weiterer Vorteil ist die GewĂ€hrleistung von Typsicherheit und Threadsicherheit. BezĂŒglich der AusfĂŒhrungsgeschwindigkeit ist der Aufruf einer Methode durch Signale und Slots jedoch geringfĂŒgig langsamer als beim Aufruf mittels RĂŒckruffunktion.[138]
Vor Qt 5 wurde die Typsicherheit von Aufrufparametern lediglich zur Laufzeit ĂŒberprĂŒft. Mit der Vorstellung von Qt 5 wurde eine alternative Methode vorgestellt, die dies nun bereits zur Kompilierzeit vermag. Die aus dem C++11-Standard bekannten Lambda-AusdrĂŒcke können nun auch als Slots verwendet werden.[100]
// Die alte connect Methode
QObject::connect(button, SIGNAL(clicked()), this, SLOT(pushButtonClicked());
// Die neue Variante
QObject::connect(button, &QPushButton::clicked, this, &ExampleObject::pushButtonClicked, Qt::AutoConnection);
// Verwendung einer Lambda-Funktion (C++11) als Slot
QObject::connect(sender, &QObject::destroyed, [=](){ ... });
Beachtung verdient der letzte Aufrufparameter des Beispiels âneue Varianteâ. Durch die optionale Angabe des Verbindungstyps lĂ€sst sich die threadĂŒbergreifende Kommunikation beeinflussen.[139]
| Verbindungstyp/Verhalten | Synchron | Asynchron |
|---|---|---|
| AutoConnection (default) | ||
| DirectConnection | ||
| QueuedConnection | ||
| BlockingQueuedConnection | ||
| UniqueConnection |
StandardmĂ€Ăig wird AutoConnection verwendet. Befinden sich Sender und EmpfĂ€nger im gleichen Thread, verhĂ€lt sich diese Variante wie DirectConnection. Andernfalls wird QueuedConnection verwendet. Diese dynamische Entscheidung findet auch bei UniqueConnection statt, jedoch ist zu einem Signal lediglich ein Slot erlaubt. BlockingQueuedConnection wartet auf die vollstĂ€ndige Abarbeitung des Slots im anderen Thread und kann daher, wenn sich beide im gleichen Thread befinden, zur Deadlock-Situation fĂŒhren.
GUI-Simulation
[Bearbeiten | Quelltext bearbeiten]Qt verwendete bis zur neuesten Version eine eigene Zeichenengine sowie Steuerelemente. Es simulierte das unterschiedliche Aussehen auf den verschiedenen Plattformen (GUI-Simulation). Das machte das Portieren einfacher, da nur sehr wenige Klassen in Qt von der verwendeten Plattform abhĂ€ngig waren. Der Nachteil bestand allerdings darin, dass Qt das Aussehen jeder Plattform prĂ€zise nachahmen musste, was nicht immer möglich war. Seit Qt 4.0 gibt es allerdings die Möglichkeit (wie auch in vielen anderen Toolkits, z. B. wxWidgets oder SWT), die betriebssystemeigenen Routinen zum Zeichnen der Elemente zu verwenden. So gibt es nun die nativen QWindowsVistaStyle, QWindowsXPStyle und den QMacStyle. Diese âStylesâ funktionieren nur auf dem passenden Betriebssystem (und sind dort auch der Standard). Es gibt nach wie vor aber auch plattformunabhĂ€ngige âStylesâ, diese lassen sich einfach (z. B. per Kommandozeile) aktivieren. Ab Version 5.0 wurde ein einheitliches Fallbackstyle namens Fusion eingefĂŒhrt.[140]
Werkzeuge
[Bearbeiten | Quelltext bearbeiten]
ZusĂ€tzlich zu den Bibliotheken enthĂ€lt Qt noch eine Reihe weiterer zusĂ€tzlicher Hilfsprogramme, von denen einige unersetzlich fĂŒr die Arbeit mit Qt sind.
- Folgende Programme werden vom Programmierer genutzt, um die Dateien eines Qt-Projekts unter einer komfortablen BenutzeroberflÀche zu bearbeiten:
- Qt Creator â integrierte Entwicklungsumgebung fĂŒr Formulare, Quellcode und Projekt-Dateien
- Qt-Designer â zum Erstellen von Formularen (*.ui (XML)) und Ressourcen-Dateien (*.qrc (XML))
- Qt-Linguist â fĂŒr Ăbersetzungen des Programms (*.ts (XML))
- Folgende Programme ermöglichen eine einfache Ăbersetzung. Zur Steuerung wird die Qt-Projekt-Datei verwendet:
- lupdate â Extrahiert aus allen Quellcodedateien die zu ĂŒbersetzenden Strings (â *.ts (XML))
- lrelease â *.ts (XML) â *.qm
- lconvert â Konvertiert zwischen *.po, *.ts, *.xlf und *.qm-Dateien
- qmake â Erstellt mit der Qt-Projekt-Datei (*.pro) ein Makefile, welches den Erstellungsprozess steuert. Neben den ĂŒblichen Programmen wie Compiler und Linker werden auch folgende Programme verwendet:
- moc â Meta-Object-Compiler, erstellt Meta-Informationen ĂŒber Klassen des Programms (*.h â moc_*.cpp), siehe unten.
- uic â Userinterface-Compiler, erstellt C++-Quellcode aus UI-Dateien (*.ui (XML) â ui_*.h)
- rcc â Ressourcen-Compiler (*.qrc (XML) â qrc_*.cpp)
FĂŒr die Benutzung der Online-Dokumentation wird der Qt-Assistant verwendet, der auch in eigene Projekte eingebunden werden kann.
Meta-Object-Compiler
[Bearbeiten | Quelltext bearbeiten]Der Meta-Object-Compiler, auch bekannt als moc, ist ein Werkzeug, welches die Header-Dateien eines Projektes untersucht und Meta-Informationen ĂŒber Klassen und sonstige Programmteile sammelt. Das geschieht mit Hilfe von âMarkierungenâ, welche spĂ€ter vom Standard-PrĂ€prozessor entfernt werden. Aus diesen Informationen erstellt er wiederum C++-Code, in dem Funktionen implementiert werden, die ohne weitere Bibliotheken in C++ nicht vorhanden sind, wie Introspektion und das Signal-Slot-Konzept. Weitere Makros werden in selbst geschriebenen Header-Dateien expandiert, um deren Funktionsdeklarationen bereitzustellen.
Der Gebrauch eines zusĂ€tzlichen Werkzeuges wurde von einem Teil der C++-Programmierer kritisiert. Sie behaupteten, dass Qt-Programmierung keine C++-Programmierung mehr sei. TatsĂ€chlich basiert die Implementation auf C-Makros, die bekanntlich nicht typsicher sind und den Namensraum verunreinigen. Aus der Sicht von Trolltech ist das aber nötig, um das Signal-Slot-Konzept elegant zu implementieren. Als Qt 1.x veröffentlicht wurde, waren die Compilerunterschiede bezĂŒglich generischer Programmierung noch zu groĂ, als dass man sich auf Vorlagenklassen (Templates) hĂ€tte verlassen können. Auch lĂ€sst sich die Verunreinigung des Namensraumes durch Verwendung des Makros QT_NO_KEYWORDS vermeiden.
Andere Anbindungen
[Bearbeiten | Quelltext bearbeiten]Die folgende Tabelle zeigt die Anbindungen fĂŒr verschiedene Programmiersprachen:
| Programmier- sprache |
Name / Beschreibung | Qt4 | Qt5 | Qt6 | Lizenz fĂŒr quelloffene Entwicklung |
Lizenz fĂŒr proprietĂ€re Entwicklung |
|---|---|---|---|---|---|---|
| Ada | QtAda Archivlink | ja | nein | GPL | GMGPL | |
| C++ | Qt (natives C++) | ja | ja | ja | LGPL | LGPL oder proprietÀre Lizenz |
| C# & .Net-Framework | Qyoto â Entwicklung eingestellt | ja | nein | LGPL | ||
| QtSharp â Befindet sich derzeit in Entwicklung | unbekannt | ja | Apache-Lizenz, Version 2.0 | |||
| qt4dotnet | ja | nein | LGPL | |||
| D | QtD | ja | nein | Boost Software License + GPL | ||
| Go | Go QML â Anbindung an QML | nein | ja | LGPL | ||
| Haskell | HsQML â Anbindung an QML | Ja (bis HsQML 0.2.0.3) | ja (ab HsQML 0.3) | BSD-Lizenz | ||
| Java | Qt Jambi â Durch die Community unter FĂŒhrung von Omix Visualization entwickelt. | ja | ja | ja | LGPL | |
| Lisp | CommonQt â Bindings fĂŒr Common Lisp | ja | nein | BSD-Lizenz | ||
| Lua | lqt | ja | nein | MIT-Lizenz | ||
| Pascal | Free Pascal Qt4 Binding | ja | Ja (als Alpha-Version) | LGPL | ||
| Perl | PerlQt4 | ja | nein | GPL | nein | |
| PHP | PHP-Qt | ja | nein | GPL | nein | |
| Python | PyQt | ja | ja | ja | GPL | ProprietÀre Lizenz |
| PySide â Wurde von Nokia selbst entwickelt, da PyQt nicht unter der LGPL veröffentlicht wurde. | ja | nein | LGPL | |||
| PySide2 â Qt5-Portierung von PySide | nein | ja | ja | LGPL | ||
| PyOtherSide â Anbindung an QML | nein | ja | nein | ISC-Lizenz | ||
| QML | QtQuick â Ist ab Version 4.7 ein Teil von Qt | ja | ja | LGPL | LGPL oder proprietĂ€re Lizenz | |
| R | qtinterfaces | ja | nein | GPL | nein | |
| Ring[141] | RingQt | nein | ja | MIT-Lizenz | ||
| Ruby | QtRuby | ja | nein | LGPL | ||
| ruby-qml â Anbindung an QML / Qt Quick | nein | ja | MIT-Lizenz | |||
| Programmier- sprache |
Name / Beschreibung | Qt4 | Qt5 | Qt6 | Lizenz fĂŒr quelloffene Entwicklung |
Lizenz fĂŒr proprietĂ€re Entwicklung |
Verwendungsbeispiele
[Bearbeiten | Quelltext bearbeiten]Die KDE Plasma Workspaces können als gröĂtes und prominentestes Softwareprojekt, das auf Qt basiert, gelten. Daneben findet die Bibliothek aber auch in anderen Anwendungsgebieten breite Verwendung.
Multimedia
[Bearbeiten | Quelltext bearbeiten]- das Bildbearbeitungsprogramm Adobe Photoshop Elements
- das Videoschnittprogramm Shotcut sowie
- der freie Media Player VLC (ab Version 0.9.2)
- die Linux-Version der Musikstreaming-Software Spotify[142]
- der Audioplayer Clementine
Wissenschaft und Technik
[Bearbeiten | Quelltext bearbeiten]- das Astronomieprogramm Stellarium
- die grafische BenutzeroberflÀche der Virtualisierungssoftware VirtualBox von Oracle
- die Simulationssoftware der ESA[143]
- das Programmpaket Mathematica des Unternehmens Wolfram Research
- der LaTeX-Editor TeXstudio
Kommunikation
[Bearbeiten | Quelltext bearbeiten]- die freie VoIP-Software Mumble
- die Linux-Version der VoIP-Software Skype
- die proprietÀre Sprachkonferenzsoftware TeamSpeak (ab Version 3.0)
- die Desktop-Versionen des Telegram Messenger
Spiele
[Bearbeiten | Quelltext bearbeiten]- das Adventure-Spiel Tales of Monkey Island
- der ingame Puzzle Editor in Portal 2
Sonstige Anwendungen
[Bearbeiten | Quelltext bearbeiten]- die Duden-Bibliothek der Verlage Duden, Brockhaus und Langenscheidt
- der virtuelle Globus Google Earth
- die freie Whiteboardsoftware OpenBoard
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- â qt-project.org.
- â Qt 6.10 Released! 7. Oktober 2025 (englisch, abgerufen am 12. Oktober 2025).
- â Qt 6.7 Beta 1 Released. 20. Dezember 2023 (englisch, abgerufen am 20. Dezember 2023).
- â a b Michael Larabel: Qt 5.0 Is Going To Like LLVMpipe, Wayland. phoronix.com, 8. Mai 2012, abgerufen am 29. Juni 2014 (englisch).
- â Support for Symbian. 25. Juni 2014, abgerufen am 14. MĂ€rz 2015 (englisch).
- â a b Symbian support is going to be removed in Qt 5.0! 1. Februar 2012, abgerufen am 16. MĂ€rz 2015 (englisch).
- â a b Community Supported Platforms. Abgerufen am 13. MĂ€rz 2015 (englisch).
- â Qt Licensing. Abgerufen am 13. MĂ€rz 2015 (englisch).
- â Adding LGPL v3 to Qt. 20. August 2014, abgerufen am 30. MĂ€rz 2015 (englisch).
- â a b Ashlee Vance: That Smartphone Is So Qt. 16. Februar 2010, abgerufen am 13. MĂ€rz 2015 (englisch).
- â Jasmin Blanchette, Mark Summerfield: C++ GUI Programming with Qt 4. Seite XV, ISBN 0-13-187249-4.
- â Qt 5.0.1 Release
- â Qt 5.2.1 Change Files
- â Qt 5.4.2 Change Files
- â Qt 5.6.2 Change Files
- â Qt 5.6.3 Change Files
- â Lars Knoll: Qt 5.8 released, 23. Januar 2017.
- â Lars Knoll: Qt 5.9 released, 31. Mai 2017.
- â Jani Heikkinen: Qt 5.9.1 released, 30. Juni 2017.
- â Tuukka Turunen: Qt 5.9.2 released, 6. Oktober 2017.
- â Tuukka Turunen: Qt 5.9.3 released, 22. November 2017.
- â Qt 5.9.4 Released
- â Qt 5.9.5 Released
- â Qt 5.9.6 Released
- â Qt 5.9.7 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.9.8 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.9.9 Released. (qt.io [abgerufen am 2. Dezember 2022]).
- â Lars Knoll: Qt 5.10 released, 7. Dezember 2017.
- â Qt 5.10.1 Released â Qt Blog. In: Qt Blog. 13. Februar 2018 (qt.io [abgerufen am 19. MĂ€rz 2018]).
- â Lars Knoll: Qt 5.11 released, 22. Mai 2018.
- â Jani Heikkinen: Qt 5.11.1 released, 19. Juni 2018.
- â wiki.qt.io
- â phoronix.com
- â Qt 5.11.3 Released with Important Security Updates
- â a b Qt 5.12 LTS Released
- â Qt 5.12.1 Released
- â Qt 5.12.2 Released
- â Qt 5.12.3 Released
- â Qt 5.12.4 Released with support for OpenSSL 1.1.1
- â Qt 5.12.5 Released
- â Qt 5.12.6 Released
- â Qt 5.12.7 Released
- â Qt 5.12.8 Released
- â Qt 5.12.9 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.12.11 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.12.12 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.13 Released! Get it today
- â Qt 5.13.1 Released
- â Qt 5.13.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.14 released!
- â Qt 5.14.1 Released
- â Qt 5.14.2 Released
- â Qt 5.15 LTS Released
- â Qt 5.15.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 5.15.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt Platform 6.0 Released | Embedded Systems Development Platform | Qt. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.0.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.0.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.0.3 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.0.4 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.1.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.1.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.1.3 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.2 LTS Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.2.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.2.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.2.3 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.2.4 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.3 released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.3.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.3.2 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.4 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â Qt 6.4.1 Released. Abgerufen am 2. Dezember 2022 (englisch).
- â a b Louis Goddard: Digia to pay Nokia âŹ4 million for Qt as framework heads towards cross-platform future. theverge.com, 10. August 2012, abgerufen am 11. August 2012 (englisch).
- â Alexander Neumann: Nokia macht mit Qt Project Schritt in Richtung âechterâ Open-Source-Entwicklung. heise.de, 24. Oktober 2011, abgerufen am 11. Juli 2012.
- â Digia to acquire Qt commercial licensing business from Nokia. 7. MĂ€rz 2011, archiviert vom (nicht mehr online verfĂŒgbar) am 2. April 2015; abgerufen am 13. MĂ€rz 2015 (englisch).
- â Alexander Neumann: Digia ĂŒbernimmt Nokias restliche Qt-AktivitĂ€ten. In: heise online. 9. August 2012, abgerufen am 28. Juni 2014.
- â Qt-GeschĂ€ft wird Tochterunternehmen von Digia. 7. August 2014, abgerufen am 2. Juli 2015.
- â KDE Free Qt Foundation. kde.org, abgerufen am 3. April 2010 (englisch).
- â Joseph Carter: Why Debian Doesnât Include KDE. 17. Juni 2000, abgerufen am 13. MĂ€rz 2015 (englisch).
- â Trolltech to Extend Dual Licensing to Qt for Windows ( vom 12. August 2011 im Internet Archive)
- â Nokia Corporation Qt GPL Exception Version 1.3. Archiviert vom (nicht mehr online verfĂŒgbar) am 2. April 2015; abgerufen am 13. MĂ€rz 2015 (englisch).
- â Oliver Lau: Mehr Open-Source-Lizenzen fĂŒr Qt. In: heise online. 9. August 2007, abgerufen am 3. April 2010.
- â Angela Meyer: Qt ist nun auch unter GPLv3 lizenzierbar. In: heise online. 19. Januar 2008, abgerufen am 3. April 2010.
- â Qt 4.5, Qt Creator released ( vom 12. August 2011 im Internet Archive)
- â Using the Digia Qt Framework (LGPL) for âcommercialâ applications. baltazaar, 20. Juli 2013, abgerufen am 29. Juni 2014 (englisch).
- â Mika PĂ€lsi: Benefits of the Indie Mobile Licensing. 1. Oktober 2014, abgerufen am 23. MĂ€rz 2015 (englisch).
- â Turunen Tuukka: Indie Mobil Program terminated? Qt Interest mailing list, 2. Juli 2015, abgerufen am 2. Juli 2015.
- â Trolltech Releases Qt 4.1. 20. Dezember 2005, archiviert vom (nicht mehr online verfĂŒgbar) am 18. August 2009; abgerufen am 3. April 2010 (englisch).
- â Trolltech Brings Style Sheets to Desktop Applications with Qt 4.2. Trolltech, 4. Oktober 2006, archiviert vom (nicht mehr online verfĂŒgbar) am 19. Juli 2012; abgerufen am 3. April 2010 (englisch).
- â Trolltech Releases Qt and Qtopia Core 4.3. 30. Mai 2007, ehemals im (nicht mehr online verfĂŒgbar); abgerufen am 3. April 2010 (englisch). (Seite nicht mehr abrufbar. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prĂŒfe den Link gemÀà Anleitung und entferne dann diesen Hinweis.
- â Qt 4.4 Framework Broadens Rich Application Development with Integration of Web Content and Portability to Mobile Devices. 6. Mai 2008, ehemals im (nicht mehr online verfĂŒgbar); abgerufen am 3. April 2010 (englisch). (Seite nicht mehr abrufbar. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prĂŒfe den Link gemÀà Anleitung und entferne dann diesen Hinweis.
- â Alexander Neumann: Qt 4.5 und Entwicklungsumgebung Qt Creator veröffentlicht. In: heise online. 3. MĂ€rz 2009, abgerufen am 3. April 2010.
- â Nokia Releases Qt 4.6. 1. Dezember 2009, archiviert vom (nicht mehr online verfĂŒgbar) am 4. Dezember 2009; abgerufen am 3. April 2010 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Nokia Releases Qt 4.7. 21. September 2010, archiviert vom (nicht mehr online verfĂŒgbar) am 26. September 2010; abgerufen am 26. September 2010 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Nokia Releases Qt 4.8. 15. Dezember 2011, abgerufen am 15. Dezember 2011 (englisch).
- â heise.de
- â Julia Schmidt: Neu organisiert: Qt 5.0 ist fertig. heise.de, 20. Dezember 2012, abgerufen am 22. Dezember 2012.
- â a b Whatâs New in Qt 5. Abgerufen am 2. September 2015 (englisch).
- â Digia releases Qt 5.1. 3. Juli 2013, archiviert vom (nicht mehr online verfĂŒgbar) am 2. April 2015; abgerufen am 14. MĂ€rz 2015. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Matthias Nagorni: Qt Developer Days Europe: Wohin steuert Qt? heise.de, 31. Oktober 2014, abgerufen am 14. MĂ€rz 2015.
- â Qt Documentation â Whatâs New in Qt 5.4. Abgerufen am 14. MĂ€rz 2015 (englisch).
- â C++-Klassenbibliothek Qt 5.5: Fokus auf StabilitĂ€t und Performance. heise.de, 2. Juli 2015, abgerufen am 2. Juli 2015.
- â heise.de
- â blog.qt.io
- â Qt 5.7 baut vollstĂ€ndig auf C++11. 14. MĂ€rz 2016, abgerufen am 17. August 2018.
- â Qt 5.7 Release. Abgerufen am 17. August 2018 (englisch).
- â Qt 5.8 erschienen: Schlanker Ansatz fĂŒr die Klassenbibliothek. 23. Januar 2017, abgerufen am 17. August 2018.
- â Qt 5.8 Release. Abgerufen am 17. August 2018 (englisch).
- â C++-Framework: Qt 5.9 als neues Long-Time-Support-Release veröffentlicht. 1. Juni 2017, abgerufen am 17. August 2018.
- â Qt 5.9 Release. Abgerufen am 17. August 2018 (englisch).
- â blog.qt.io
- â Qt 5.10 Beta: Auf zum Vulkan. 10. Oktober 2017, abgerufen am 17. August 2018.
- â Qt 5.10 Release. Abgerufen am 17. August 2018 (englisch).
- â Qt 5.11 Release. Abgerufen am 17. August 2018 (englisch).
- â Qt 5.11: Mehr Barrierefreiheit unter Windows. 22. Mai 2018, abgerufen am 17. August 2018.
- â Qt for Python 5.11 ist fertig. 14. Juni 2018, abgerufen am 17. August 2018.
- â Lars Knoll: Qt 6.0 Released. 8. Dezember 2020, abgerufen am 8. Dezember 2020 (englisch).
- â Qt 6.1 Released. Abgerufen am 28. Juli 2021 (englisch).
- â Lars Knoll: Qt 6.2 LTS Released. 30. September 2021, abgerufen am 14. November 2021 (englisch).
- â Qt 6.6.1 Released. Abgerufen am 20. Dezember 2023 (englisch).
- â Qt 6.7 Release - Qt Wiki. Abgerufen am 19. Juni 2024.
- â a b Download Qt. Abgerufen am 16. MĂ€rz 2015 (englisch).
- â Qt-5-on-Nokia-N9. Abgerufen am 16. MĂ€rz 2015 (englisch).
- â Qt Software discontinues Qt Extended ( vom 8. MĂ€rz 2009 im Internet Archive) (englisch)
- â KDE on OpenSolaris ( des vom 20. Februar 2010 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Qt Applications and UI Framework for Haiku
- â Qt 4 Application and UI Framework for eCS
- â OS4Depot page for âFirst Alpha release of Qt 4.7 for AmigaOS Nativeâ
- â Qt webOS port (Seite nicht mehr abrufbar, festgestellt im April 2019. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prĂŒfe den Link gemÀà Anleitung und entferne dann diesen Hinweis.
- â Blog: Qt on the Palm Pre
- â Blog: Qt on Amazon Kindle DX
- â Sebastian GrĂŒner: Aktualisierungen fĂŒr KDE SC 4.7 und KDE 3.5. golem.de, 11. MĂ€rz 2011, abgerufen am 14. MĂ€rz 2015.
- â Open Linux developer phone opens up more. linuxfordevices.com, 5. MĂ€rz 2007, archiviert vom (nicht mehr online verfĂŒgbar) am 24. Dezember 2013; abgerufen am 10. Juli 2012 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.
- â Knut Yrvin auf Qt Blog (urspr. Qt Labs). 16. Januar 2012, abgerufen am 14. MĂ€rz 2015.
- â Trolltech Releases Qt 4.0. 28. Juni 2005, abgerufen am 26. MĂ€rz 2015 (englisch): âUnlike previous Qt releases, Qt 4 is a collection of smaller libraries [âŠ]â
- â Signals & Slots. Abgerufen am 2. September 2015 (englisch).
- â Threads and QObjects. Abgerufen am 2. September 2015 (englisch).
- â Qt Blog â Cleaning up styles in Qt5 and adding Fusion
- â Language Bindings â Qt Wiki. Abgerufen am 7. Dezember 2016.
- â Applications Using QtWebKit. Qt Wiki
- â Qt in der ESA. ( vom 23. Juli 2011 im Internet Archive)
