Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Qt
ist eine sehr umfangreiche C++ Klassenbibliothek für die Entwicklung von Anwendungen. Den größten Bekanntheitsgrad hat Qt als Bibliothek zur Erstellung von grafischen Benutzeroberflächen, jedoch bringt Qt eine Vielzahl weiterer Module mit sich, die die Programmierung vereinfachen (bspw. Netzwerkprogrammierung, Datenbankanbindung, XML, OpenGL, etc.). Außerdem ist man beim Einsatz von Qt nicht auf C++ beschränkt. Es existieren Anbindungen zu zahlreichen Programmiersprachen. So ermöglicht zum Beispiel Qt Jambi die Programmierung in Java unter Verwendung von Qt.
Mit Hilfe von Qt ist die Erstellung plattformübergreifender Anwendungen möglich. Neben den Unix-Derivaten mit X11 als Darstellungsserver werden u.a. Windows, Mac OS X und Symbian unterstützt. Dabei ist hervorzuheben, dass Qt für jede Plattform das gewohnte native Look & Feel mitbringt.
Qt wurde von Qt Development Frameworks (bis Mitte 2008 Trolltech SA), einer Tochterfirma von Nokia, entwickelt und unter einem dualen Lizenzsystem freigegeben. Der Quellcode steht unter verschiedenen Open Source Lizenzen, wie z.B. der General Public License (GPL) und kann somit frei benutzt werden. Seit Qt 4.5, das in Ubuntu 9.04 zum Einsatz kam, wird neben der kommerziellen Lizenz und der GPL zusätzlich auch eine LGPL-Variante angeboten. Seit Ende Oktober 2011 ist das Qt Project
die neue Heimat.
Die Benutzeroberfläche KDE verwendet seit jeher Qt (siehe Geschichte von KDE). Die aktuelle Version KDE 4 verwendet Qt 4 und konnte daher (nach einer Lizenzänderung durch Trolltech) auch auf Windows und Mac OS X portiert werden. An dieser Stelle soll auch ein weit verbreiteter Irrtum ausgeräumt werden: Wenn ein Programm Qt zur Gestaltung der grafischen Oberfläche verwendet, hat das rein gar nichts mit KDE zu tun. Es existieren allerdings Qt-Programme, die zusätzlich noch KDE-Bibliotheken verwenden und dann tatsächlich KDE voraussetzen. Dies ist teilweise auch eine Sache der Paketierung durch die jeweiligen Distributionen, da manche Programme wie z.B. Marble KDE-Abhängigkeiten nicht zwingend voraussetzen. Programme ohne Abhängigkeit von KDE-Bibliotheken, bzw. mit einer optionalen Qt-Oberfläche sind hier Wiki mit dem Schlagwort=Qt markiert.
Das folgende Paket muss installiert [1] werden, um C/C++-Anwendungen mit Qt zu entwickeln:
libqt4-dev
mit apturl
Paketliste zum Kopieren:
sudo apt-get install libqt4-dev
sudo aptitude install libqt4-dev
Qt verfügt über eine Vielzahl von Anbindungen an verschiedene Programmiersprachen.
Anbindungen | ||
Sprache | Paket | Weblink |
Ada | QtAda ![]() | |
C# & .NET | qyoto-dev | Qyoto ![]() |
C# & .NET | qt4dotnet ![]() | |
D | QtD ![]() | |
Haskell | Qt Haskell ![]() | |
Harbour | hbqt ![]() | |
Java | Qt Jambi ![]() | |
Lisp | CommonQt ![]() | |
Lua | lqt ![]() | |
Lua | QtLua ![]() | |
Pascal | FreePascal Qt4 ![]() | |
Perl | perlqt-dev (ab Ubuntu 11.10) | PerlQt4 ![]() |
PHP | PHP-Qt ![]() | |
Python | python-qt-dev | PyQt ![]() |
Python | libpyside-dev | PySide ![]() |
Python | PythonQt ![]() | |
R | qtbase ![]() | |
Ruby | QtRuby ![]() | |
Tcl | qtcl ![]() |
Anwendungen können in einem beliebigen Editor [2] geschrieben werden, jedoch empfiehlt sich der Einsatz einer Entwicklungsumgebung. Für die Entwicklung von C++-Anwendungen gibt es speziell auf Qt ausgerichtete Programme:
Qt Creator - Das "Allround-Talent" für die Qt-Programmierung (Editor, bindet Qt Designer ein, Projekt- und Versionsverwaltung, Hilfesystem, etc.).
QDevelop - Schlanke Qt-Entwicklungsumgebung
KDevelop - Die IDE des KDE-Projekts. Ähnlich komplex wie Qt Creator, jedoch nicht ausschließlich auf Qt ausgerichtet und ohne Designer.
![]() | ![]() |
Qt Designer | Qt Linguist |
Qt verfolgt das Model View Controller Konzept. Da die Klasse für die Oberfläche keine Logik enthält, ist es nicht erforderlich - wenn auch möglich - die Oberfläche im Quellcode zu schreiben. Mit Hilfe von Qt Designer erstellte Oberflächen sind an keine Programmiersprache gebunden, sondern können ohne Änderung bspw. sowohl in einer C++-, als auch einer Python-Anwendung verwendet werden. Der Designer kann als eigenständige Anwendung gestartet werden, ist aber zusätzlich auch im Qt Creator integriert.
Qt unterstützt Entwickler beim Übersetzen ihrer Anwendungen in beliebige Sprachen. Hierbei hilft das Werkzeug Qt Linguist, welches im folgenden Paket enthalten ist:
qt4-dev-tools (security)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install qt4-dev-tools
sudo aptitude install qt4-dev-tools
Starten kann man Qt Linguist über "Programme -> Entwicklung -> Übersetzung -> Qt 4 Linguist". Die Anwendung listet alle übersetzbaren Zeichenketten auf und zeigt ebenfalls die entsprechende Stelle im Quellcode bzw. auf der grafischen Benutzeroberfläche. Genauere Informationen zur Generierung der Übersetzungsdateien findet sich in der offiziellen Dokumentation .
![]() |
Qt Assistant |
Die Dokumentation von Qt ist sehr umfangreich; sie lässt sich diese mit dem Programm Qt Assistant durchstöbern, welches im folgendne Paket enthalten ist:
qt4-dev-tools (security)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install qt4-dev-tools
sudo aptitude install qt4-dev-tools
Das Programm wird über "Programme -> Entwicklung -> Qt 4 Assistant" aufgerufen. Es enthält Anleitungen zum Qt Assistant, Qt Designer, Qt Linguist, QMake sowie die gesamte Qt-Referenz. Über den Reiter "Suchen" kann man alle Anleitung nach beliebigen Begriffen durchsuchen. Qt Assistant ist eine eigenständige Anwendung, welche zusätzlich auch im Qt Creator integriert ist.
Alternativ bietet der Browser Konqueror die Möglichkeit, über das Webkürzel "qt:klassenname" direkt zur Dokumentation von "klassenname" zu navigieren.
Es lohnt sich ebenfalls ein Blick auf die Demos und Beispiele der Entwickler. Dort kann man in Qt geschriebene Programme testen und zugleich die Quelltexte durchsuchen. Zu jedem Thema gibt es ein Anwendungsbeispiel. Zuerst muss das folgende Paket installiert werden:
qt4-demos
mit apturl
Paketliste zum Kopieren:
sudo apt-get install qt4-demos
sudo aptitude install qt4-demos
Erreichbar sind die Beispiele und Demos unter
/usr/lib/qt4/demos
/usr/lib/qt4/examples
Qmake ist ein Generator für Makefiles. Mit dem folgenden Befehl kann eine Projektdatei (*.pro) erstellt werden, die den gleichen Namen trägt wie der Ordner, in dem sich die Dateien befinden:
qmake-qt4 -project qmake-qt4
Eine Übersicht der Parameter, die in die Projektdatei eingefügt werden können (bspw. QT += network
für Netzwerkprogrammierung), findet sich in der offiziellen Dokumentation . Nachdem man das "Makefile" erstellt hat, kann man seine Anwendung kompilieren:
make
Natürlich kann hier keine erschöpfende Einführung in Qt und die verschiedenen von Qt verwendeten Konzepte gegeben werden. An dieser Stelle muss auf externe Literatur verwiesen werden. Im folgenden wird die Erstellung einer einfachen Anwendung gezeigt.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.show(); return app.exec(); } |
Qt Centre - Qt Community Seite
Softwareverzeichnis von Qt-Applikationen
Programme im hiesigen Wiki, die auf Qt basieren