Qt ([] wie ) 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 der Desktop-Umgebung KDE Plasma und in den 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 Anfänge und Namensentwicklung 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.Jasmin Blanchette, Mark Summerfield: C++ GUI Programming with Qt 4. Seite XV, ISBN 0-13-187249-4. Ausgesprochen wird Qt offiziell wie das englische Wort . Dieses Wort soll die Ansicht der Entwickler ausdrücken, dass der Quelltext und die API von Qt eben seien, was auf Deutsch unter anderem so viel wie süß, hübsch usw., aber auch pfiffig heißt.

Datum Version 10. September 1998 1.33 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.1Qt 5.0.1 Release 3. Juli 2013 5.1.0 12. Dezember 2013 5.2.0 12. März 2014 5.2.1Qt 5.2.1 Change Files 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.2Qt 5.4.2 Change Files 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.2Qt 5.6.2 Change Files 8. Oktober 2016 5.6.3Qt 5.6.3 Change Files 16. Juni 2016 5.7.0 13. Dezember 2016 5.7.1 23. Januar 2017 5.8.0Lars Knoll: Qt 5.8 released, 23. Januar 2017. 31. Mai 2017 5.9.0Lars Knoll: Qt 5.9 released, 31. Mai 2017. 30. Juni 2017 5.9.1Jani Heikkinen: Qt 5.9.1 released, 30. Juni 2017. 6. Oktober 2017 5.9.2Tuukka Turunen: Qt 5.9.2 released, 6. Oktober 2017. 22. November 2017 5.9.3Tuukka Turunen: Qt 5.9.3 released, 22. November 2017. 23. Januar 2018 5.9.4Qt 5.9.4 Released 12. April 2018 5.9.5Qt 5.9.5 Released 11. Juni 2018 5.9.6Qt 5.9.6 Released23. Oktober 20185.9.718. April 20195.9.817. Dezember 20195.9.9 7. Dezember 2017 5.10.0Lars Knoll: Qt 5.10 released, 7. Dezember 2017.13. Februar 2018 5.10.1 22. Mai 2018 5.11.0Lars Knoll: Qt 5.11 released, 22. Mai 2018. 19. Juni 2018 5.11.1Jani Heikkinen: Qt 5.11.1 released, 19. Juni 2018. 20. September 2018 5.11.2https://wiki.qt.io/Qt_5.11.2_Change_Fileshttps://www.phoronix.com/scan.php?page=news_item&px=Qt-5.11.2-Released 4. Dezember 2018 5.11.3Qt 5.11.3 Released with Important Security Updates 6. Dezember 2018 5.12.0Qt 5.12 LTS Released 1. Februar 2019 5.12.1Qt 5.12.1 Released 15. März 2019 5.12.2Qt 5.12.2 Released 17. April 2019 5.12.3Qt 5.12.3 Released 17. Juni 2019 5.12.4Qt 5.12.4 Released with support for OpenSSL 1.1.1 11. September 2019 5.12.5Qt 5.12.5 Released 13. November 2019 5.12.6Qt 5.12.6 Released 31. Januar 2020 5.12.7Qt 5.12.7 Released 8. April 2020 5.12.8Qt 5.12.8 Released17. Juni 20205.12.925. Mai 20215.12.1126. November 20215.12.12 19. Juni 2019 5.13.0Qt 5.13 Released! Get it today 5. September 2019 5.13.1Qt 5.13.1 Released31. Oktober 20195.13.2 19. Dezember 2019 5.14.0Qt 5.14 released! 27. Januar 2020 5.14.1Qt 5.14.1 Released 1. April 2020 5.14.2Qt 5.14.2 Released 26. Mai 2020 5.15.0Qt 5.15 LTS Released10. September 20205.15.120. September 20205.15.28. Dezember 20206.03. Februar 20216.0.13. März 20216.0.231. März 20216.0.34. Mai 20216.0.46. Mai 20216.17. Juni 20216.1.11. Juli 20216.1.21. September 20216.1.330. September6.227. Oktober 20216.2.11. Dezember 20216.2.231. Januar 20226.2.321. März 20226.2.412. April 20226.314. Juni 20226.3.112. September6.3.229. September 20226.415. November 20226.4.15. Januar 20236.4.216. März 20236.4.324. Mai 20236.5.110. Oktober 20236.627. November 20236.6.115. Februar 20246.6.226. März 20246.6.32. April 20246.721. Mai 20246.7.119. Juni 20246.7.227. September 20246.7.38. Oktober 20246.82. Dezember 20246.8.131. Januar 20256.8.227. März 20256.8.32. April 20256.93. Juni 20256.9.127. August 20256.9.230. September 20256.9.37. Oktober 20256.1020. November 20256.10.129. Januar 20266.10.22. April 20266.10.323. März 20266.1113. Mai 20266.11.118. August 20266.11.2

Übernahmen durch Nokia und Digia Anfang 2008 wurde Trolltech von Nokia für 150 Mio. US-Dollar aufgekauft 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 und das Geschäft mit der kommerziellen Lizenzierung und die Serviceverträge für eine unbekannte Summe an Digia verkauft. Im August 2012 wurden auch die restlichen Teile, wie das Servergeschäft und die Entwicklungsabteilung, für 4 Mio. € an Digia abgegeben. 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.

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

Als der Druck auf Trolltech größer wurde und das Debian-Projekt sich wegen Lizenzproblemen weigerte, KDE zu vertreiben, ä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. 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.

Seit Anfang 2008 werden die Versionen von Qt auch unter der dritten Version der GPL veröffentlicht.

Im März 2009 wurde Qt in Version 4.5 erstmals unter der LGPL veröffentlicht. 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.

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. Mit dem Erscheinen von Qt 5.5 im Juli 2015 wurde die Indie Mobile Edition jedoch eingestellt.

Änderungshistorie Qt 4 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