What is Qt?
Qt is a cross-platform application development framework for desktop, embedded and mobile. Supported Platforms include Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS and others.
Qt is not a programming language on its own. It is a framework written in C++. A preprocessor, the MOC (Meta-Object Compiler), is used to extend the C++ language with features like signals and slots. Before the compilation step, the MOC parses the source files written in Qt-extended C++ and generates standard compliant C++ sources from them. Thus the framework itself and applications/libraries using it can be compiled by any standard compliant C++ compiler like Clang, GCC, ICC, MinGW and MSVC.
The Qt Company and The Qt Project
Development of Qt was started in 1990 by the Norwegian programmers Eirik Chambe-Eng and Haavard Nord. Their company, Trolltech, that sold Qt licenses and provided support, went through several acquisitions over the years. Today former Trolltech is named The Qt Company and is a wholly owned subsidiary of Digia Plc., Finland. Although The Qt Company is the main driver behind Qt, Qt is now developed by a bigger alliance: The Qt Project. It consists of many companies and individuals around the globe and follows a meritocratic governance model.
Everyone who wants to, individuals and companies, can join the effort. There are many ways one can contribute to the Qt Project, e.g. by writing code or documentation for the framework, reporting bugs, helping other users on the forum or maintaining pages on this wiki (see also http://qt.io/contribute/).
CMake is also a popular alternative to build Qt projects, Qt 4 support has been integrated years ago and Qt 5 provided support early.
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.
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.
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.
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.
Facts and Figures
- One million downloads of Qt 5.3 measured just over a month after launch.
- 250+ commits by 60+ contributors per week
- Leading companies and organizations in over 70 industries use Qt to power millions of devices and applications, including, but not limited to:
- European Space Agency
- Wolfram Research
- Dassault Systèmes
- Walt Disney Animation Studios
- Volvo Mobility Systems
- Finnish IT center for science
- US National Nuclear Security Administration (ASC)
- Sandia National Laboratories
- Los Alamos National Laboratory
- US Army Research Laboratory
- Main companies contributing to Qt in 2015:
- Service partners of The Qt Company:
- Technology partners:
- Community partners:
- Thiago Macieira's blog