Qt (software)


Qt is a cross-platform application development framework for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed.
Qt is currently being developed by The Qt Company, a publicly listed company, and the Qt Project under open-source governance, involving individual developers and organizations working to advance Qt. Qt is available under both commercial licenses and open-source GPL 2.0, GPL 3.0, and LGPL 3.0 licenses.

Purposes and abilities

Qt is used for developing graphical user interfaces and multi-platform applications that run on all major desktop platforms and mobile or embedded platforms.
Most GUI programs created with Qt have a native-looking interface, in which case Qt is classified as a widget toolkit. Non-GUI programs can also be developed, such as command-line tools and consoles for servers. An example of such a non-GUI program using Qt is the Cutelyst web framework.
Qt supports various C++ compilers, including the GCC and Clang C++ compilers and the Visual Studio suite. It supports other languages with bindings or extensions, such as Python via Python bindings and PHP via an extension for PHP5, and has extensive internationalization support. Qt also provides Qt Quick, that includes a declarative scripting language called QML that allows using JavaScript to provide the logic. With Qt Quick, rapid application development for mobile devices became possible, while logic can still be written with native code as well to achieve the best possible performance.
Other features include SQL database access, XML parsing, JSON parsing, thread management and network support.

Releases

The latest version of the Qt Framework is Qt 6.10, which was released on 7 October 2025.
Also still supported are versions 6.9 until 31 May 2026 and 6.8 LTS until 8 October 2029. Version 6.5 LTS is supported for commercial users only until 30 May 2026. Additionally, extended support for all versions 5.0 and newer is available for commercial users.
Minor versions of Qt are typically released twice a year and are supported until one year after release date under standard support conditions. Typically, every third minor version becomes a long-term support version which gets additional patches. LTS versions are supported for commercial users until five years after their release date.

Qt in use

In 2017, the Qt Company estimated a community of about 1 million developers worldwide in over 70 industries.

Desktop UIs

Graphical user-interfaces and desktop environments that utilize Qt/QML as widget toolkit:
Many notable open-source or proprietary cross-platform software are using Qt or QML:
Qt is utilized by a wide range of companies and organizations such as

Qt concepts

Qt is built on these key concepts:

Complete abstraction of the GUI

When first released, Qt used its own paint engine and controls, emulating the look of the different platforms it runs on when it drew its widgets. This made the porting work easier because very few classes in Qt really depended on the target platform; however, this occasionally led to slight discrepancies where that emulation was imperfect. Recent versions of Qt use the native style APIs of the different platforms, on platforms that have a native widget set, to query metrics and draw most controls, and do not suffer from such issues as often. On some platforms Qt is the native API. Some other portable graphical toolkits have made different design decisions; for example, wxWidgets uses the toolkits of the target platform for its implementations.

Signals and slots

are a language construct introduced in Qt for communication between objects which makes it easy to implement the observer pattern while avoiding boilerplate code. The concept is that GUI widgets can send signals containing event information which can be received by other controls using special functions known as slots.

Metaobject compiler

The metaobject compiler, termed moc, is a tool that is run on the sources of a Qt program. It interprets certain macros from the C++ code as annotations, and uses them to generate added C++ code with meta information about the classes used in the program. This meta information is used by Qt to provide programming features not available natively in C++: signals and slots, introspection and asynchronous function calls.
Qt moc does not recognise modules in its preprocessor currently.