About Qt/de
Was ist Qt?
Qt ist ein Framework, dass die plattformunabhängige Entwicklung für Desktop-, Embedded- und Mobilanwendungen unterstützt. Unterstützte Plattformen sind Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS und weitere.
Qt ist keine eigenständige Programmiersprache. Es ist ein in C++ geschriebenes Framework. Ein Präprozessor, der MOC (Meta-Object Compiler), wird eingesetzt, um die Programmiersprache C++ um Features wie z.B. Signals und Slots zu erweitern. Vor der Kompilierung parst der MOC die Quelldateien, die in C++ mit Qt-Erweiterungen geschrieben sind, und generiert aus ihnen C++-Standard-konforme Quelldateien. Deshalb kann das Framework selbst und Anwendungen bzw. Bibliotheken, die es benutzen, von jedem C++-Standard-konformen Compiler wie Clang, GCC, ICC, MinGW und MSVC kompiliert werden.
Die Qt Company und das Qt-Projekt
Die Entwicklung von Qt begann 1990 durch die norwegischen Programmierer Eirik Chambe-Eng und Haavard Nord. Ihre Firma, Trolltech, die Qt-Lizenzen vertrieb und Support anbot, durchlief mehrere Übernahmen im Laufe der Jahre. Ehemals Trolltech heißt nun die Qt Company und ist eine hundertprozentige Tochtergesellschaft von Digia Plc., Finnland. Obwohl die Qt Company der Haupttreiber hinter Qt ist, wird Qt nun von einer größeren Allianz entwickelt: dem Qt-Projekt. Es besteht aus vielen Firmen und Einzelpersonen rund um den Globus und folgt einem leistungsorientierten Kontrollsystem.
Jeder, der möchte, egal ob Einzelpersonen oder Firmen, kann sich hier anschließen. Es gibt viele Möglichkeiten zum Qt-Projekt beizutragen, z.B. indem man Code oder Dokumentation für das Framework schreibt, Fehler (Bugs) meldet, anderen Nutzern im Forum hilft oder die Seiten dieses Wikis pflegt (siehe auch http://qt.io/contribute/).
Lizenz
Qt is verfügbar unter verschiedenen Lizenzen: Die Qt Company verkauft kommerzielle Lizenzen, jedoch ist Qt auch als freie Software unter verschiedenen Versionen der GPL und der LGPL (Lizenz-FAQs) verfügbar.
Build-System
Obwohl jedes Build-System mit Qt genutzt werden kann, bringt Qt durch qmake sein eigenes Build-System mit. Es ist ein plattformunabhängiges Frontend für plattform-native Build-System wie GNU Make, Visual Studio und Xcode.
CMake ist ebenfalls eine beliebte Alternative um Qt-Projekte zu bauen; Support dafür ist in Qt4 seit Jahren integriert. CMake is also a popular alternative to build Qt projects, Qt 4 support has been integrated years ago and Qt 5 provided support early.
A new player entered the game recently: The Qt Build Suite a.k.a Qbs. Qbs is a QML based build system which also provides support for Javascript. This build system not only provides building capability but also packaging like cmake.
IDE
Qt comes with its own Integrated Development Environment (IDE), named Qt Creator. It runs on Linux, OS X and Windows and offers intelligent code completion, syntax highlighting, an integrated help system, debugger and profiler integration and also integration for all major version control systems (e.g. git, Bazaar). In addition to Qt Creator developers on Windows can also use Qt's Visual Studio Add-in. Other IDEs (e.g. KDevelop on KDE) can also be used. But of course it is in no way mandatory to use any IDE at all.
Internationalization and Localization
Qt features excellent support for internationalization (i18n) and localization (l10n). The tool Qt Linguist and its companions lupdate, lrelease and lconvert make it easy to translate applications to locale languages. Qt supports most languages and writing systems that are in use today. For a complete listing see the corresponding manual pages.
Widgets
With Qt, GUIs can be written directly in C++ using its Widgets module. Qt also comes with an interactive graphical tool called Qt Designer which functions as a code generator for Widgets based GUIs. Qt Designer can be used stand-alone but is also integrated into Qt Creator.
QtQuick
Another way to write GUIs with Qt is to use the QtQuick module. GUIs using QtQuick are written in QML. QML is a declarative object description language that integrates Javascript for procedural programming. QtQuick provides the necessary modules for GUI development with QML. It is possible to write whole applications in QML only, but usually only the GUI is written in QML and the application's backend is implemented in C++ (see Integrating QML and C++). Also Qt Creator features an integrated QtQuick GUI designer and profiler.
More Modules
Qt is far more than a GUI toolkit. It provides modules for cross-platform development in the areas of networking, databases, OpenGL, web technologies, sensors, communications protocols (Bluetooth, serial ports, NFC), XML and JSON processing, printing, PDF generation, and much more.
For a full list of official Qt modules, see the All Modules page in the Qt documentation.
Also, see Inqlude.org for a list of 3rd-party modules based on Qt, for use in Qt projects.
Language Bindings
Although applications using Qt are usually written in C++ and QML bindings to other languages exist. These are not part of Qt but are provided by various third parties. Riverbank Computing for example provides commercial and free software Python bindings (PyQt). For more language bindings see Category:LanguageBindings.