Qt (Bibliothek)
Diese Seite beschäftigt sich mit der Programmierung graphischer Benutzeroberflächen. Für andere Bedeutungen von Qt siehe Qt (Begriffsklärung).
Qt ist eine Klassenbibliothek und Entwicklungsumgebung für die plattformübergreifende Programmierung graphischer Benutzeroberflächen (GUI) unter C++.
Qt wird von der norwegischen Firma Trolltech entwickelt, und ist für verschiedene Betriebsysteme wie Linux, Mac OS X und Windows erhältlich. Die Klassenbibliothek steht zum einen unter der GNU General Public License (GPL) als auch unter einer kommerziellen Lizenz, welche allerdings nur benötigt wird falls mit der Umgebung Produkte entwickelt werden sollen, die nicht wiederum unter einer freien Lizenz stehen.
Herkunft und Bedeutung des Namens
Ursprünglich stand die Abkürzung Qt für Quasar toolkit. Quasare sind die dauerhaft am stärksten strahlenden Objekte im Universum (sie werden nur kurzzeitig von den Gammablitzen übertroffen). Durch den Bezug auf solche unvorstellbar energieintensiven Objekte sollte wohl der ergeizige Anspruch der Entwickler zum Ausdruck kommen, ein bedeutendes Programmierwerkzeug zu schaffen. Ihre Firma Trolltech hieß daher ursprünglich auch Quasar Technologies.
Heute hat die Abkürzung Qt jedoch nicht mehr diese Bedeutung und wird offiziell wie das englische Wort cute ausgesprochen. Dieses Wort soll die Ansicht der Entwickler ausdrücken, dass der Quelltext und die API von Qt eben cute sei, was auf Deutsch unter anderem so viel wie pfiffig, schlau, hübsch usw. heißt.
Qt wird stets mit einem kleinen "t" geschrieben und nicht als QT, welches für Apples Multimediasoftware QuickTime steht.
Varianten
Es gibt derzeit die folgenden Varianten des Qt Toolkits, die auf verschiedenen Plattformen laufen, aber unterschiedlichen Lizenzen unterliegen:
- Qt/X11 – Qt für das X Window System (GPL oder Proprietär)
- Qt/Mac – Qt für Apple Mac OS X (früher nur proprietär, jetzt auch unter der GPL)
- Qt/Windows – Qt für Microsoft Windows (früher nur proprietär, ab Version 4.0 auch unter der GPL)
- Qt/Embedded – entwickelt für PDAs und Embedded Linux (GPL oder Proprietär)
Das KDE/Cygwin Projekt arbeitete an einer neuen nativen Windows-Version von Qt, die auf der Qt/X11-Variante basiert und somit vollständig GPL-lizenziert ist.
Besonderheiten
Eine Besonderheit ist die Verwendung von „signals“ und „slots“, die auf einfache Art und Weise die Kommunikation zwischen einzelnen Objekten ermöglicht. Bei den meisten anderen Klassenbibliotheken wird dies durch Callback-Funktionen realisiert. Die Herangehensweise mittels Callback-Funktionen hat zwar einen geringen Vorteil bezüglich der Ausführungsgeschwindigkeit, aber beachtliche Nachteile bei der Pflege der Programme.
Prominente Beispiele, in denen das Qt-Toolkit zum Einsatz kommt, sind z. B.:
- die freie KDE-Desktopumgebung,
- der Opera-Webbrowser,
- das Bildbearbeitungsprogramm Photoshop Album von Adobe
- das Videoschnittprogramm MainActor der Firma MainConcept sowie
- die Office-Bibliothek von den Verlagen Brockhaus und Langenscheidt.
Einsatz im Embedded-Bereich
Mit Qt/Embedded stellte Trolltech eine Version vor, die den Linux-Framebuffer statt des X-Window-Systems benutzt. Diese wird vor allem in eingebettenen Geräten auf Linux-Basis eingesetzt. Bekannt wurde sie vor allem durch den Zaurus PDA von Sharp, der auf Qt/Embedded und deren grafische Oberfläche Qtopia aufsetzte.
Lizenzierung
Anfänglich wurde Qt für Linux unter einer eigenen Lizenz, der QPL (Q Public License), veröffentlicht, deren Qualifizierung als Freie Software strittig war.
Dies führte dazu, dass sich viele Linux-Entwickler statt für Qt und KDE für das GIMP-Toolkit GTK+ entschieden, auf dessen Basis sich das GNOME-Projekt begründete.
Als der Druck auf Trolltech größer wurde und das Debian-Projekt begann, KDE als unfreie Software zu klassifizieren, änderte Trolltech im Jahre 2000 die Lizenz für die Linux-Version des Toolkits: Seit Version 2.2 gibt es fortan eine Duallizenzierung GPL/QPL.
Im Februar 2005 kündigte Trolltech an, ihr Qt ab der Version 4.0 auch für die Windows-Plattform unter die GPL stellen zu wollen. [1]
FreeQt Foundation
Noch bevor Qt doppellizensiert wurde wurde die FreeQt Foundation ins Leben gerufen. Diese besteht aus jeweils zwei Vertretern von Trolltech und dem KDE e. V., wobei letztere im Zweifelsfall bei Abstimmungen die Majorität haben. Die Foundation ist berechtigt, die letzte freie Qt-Version unter der BSD-Lizenz freizugeben, falls Trolltech übernommen wird oder länger als ein halbes Jahr kein Update liefert.
PyQt
Die britische Firma Riverbank Computing Ltd. hat unter dem Namen PyQt eine Python-API entwickelt, die zu ähnlichen Bedingungen wie Qt erhältlich ist (GPL'ed kostenlos unter Linux, sonst kommerziell).