Generated by GPT-5-mini| Qt | |
|---|---|
| Name | Qt |
| Developer | The Qt Company; originally Trolltech |
| Initial release | 1995 |
| Latest release | (see project updates) |
| Programming language | C++ |
| Platform | Cross-platform |
| License | Commercial, GNU Lesser General Public License, other permissive licenses |
Qt Qt is a cross-platform application framework for developing graphical user interfaces and cross-platform applications. It provides libraries, development tools, and runtime support for creating native-feeling software on desktop, mobile, embedded, and server environments. Qt is used by application developers, device manufacturers, and software vendors to build software ranging from simple utilities to complex integrated systems.
Qt supplies a comprehensive set of libraries for widgets, graphics rendering, multimedia, networking, database access, and internationalization. It wraps low-level system APIs to present higher-level abstractions while aiming for performance and native integration on platforms such as Microsoft Windows, macOS, Linux, Android, and iOS. Qt includes language bindings and meta-object facilities for features like signals and slots, property systems, and reflection, enabling rapid development in C++ and other languages. The project ecosystem comprises commercial products, open-source releases, and a community of contributors from companies, research institutions, and individual developers.
Qt originated in the mid-1990s at Trolltech, founded by Haavard Nord, Eirik Chambe-Eng, and other engineers, aiming to deliver a modern C++ framework for GUI development on X Window System and Microsoft Windows. Over time Qt’s stewardship moved through acquisitions and corporate transitions, including involvement by Nokia, subsequent spin-offs, and the establishment of The Qt Company as the primary commercial steward. Licensing has evolved from proprietary terms to dual licensing models that include commercial licenses and open-source options such as the GNU Lesser General Public License and additional permissive licenses. High-profile disputes and community advocacy influenced licensing decisions, involving stakeholders such as open-source projects, corporate contributors, and distribution platforms like Debian, KDE, and major vendors. Qt’s licensing allows usage in both proprietary products and free software, subject to the selected license terms and compliance with contributor and downstream obligations.
Qt’s architecture organizes functionality into modular libraries and plugins. Core modules provide base types, container classes, and event loops; GUI modules offer widget sets, model–view frameworks, and graphics view systems; multimedia modules handle audio, video, and camera integration; and network modules implement protocols, sockets, and HTTP clients. Additional modules cover OpenGL and GPU-accelerated rendering, WebAssembly and web engine embedding, SQL database drivers, and internationalization with Unicode support. The model–view–controller and model–view–delegate patterns are implemented in modules used by desktop environments such as KDE Plasma and applications like VirtualBox. Plugins and platform abstraction layers enable integration with windowing systems such as Wayland, X.Org, and native frameworks on macOS and Microsoft Windows.
Qt’s development tooling includes a visual UI designer, build systems, and language bindings. Qt Creator provides an integrated development environment with code editor, debugger integration for GDB and LLDB, and form designer for rapid interface composition. The project supports build systems such as CMake and qmake, and provides tools for resource compilation, translation management, and automated testing. Bindings and wrappers extend Qt to languages and runtimes including Python via PyQt and PySide, JavaScript for QML and scripting, and Rust through community projects. QML, a declarative language for designing fluid animated UIs, integrates with a JavaScript runtime and a scene graph for hardware-accelerated rendering, used in consumer devices and embedded projects from vendors like Nokia and automotive suppliers.
Portability is a central design goal; abstraction layers hide platform-specific details to allow a single codebase to target desktops, mobile devices, embedded systems, and cloud environments. Qt supports deployment on architectures from x86 and x86-64 to ARM and RISC-V, with cross-compilation toolchains used for embedded boards such as Raspberry Pi and system-on-chip platforms from Qualcomm and NXP Semiconductors. Platform backends integrate with display servers and window managers like Wayland compositors, X.Org Server, and native APIs on macOS and Microsoft Windows. For web and constrained environments, Qt provides ports to WebAssembly and minimal runtime subsets for resource-limited devices, enabling IoT and industrial use cases adopted by manufacturers and integrators.
Qt is deployed in a wide range of products and projects across industries. Prominent desktop environments and applications built with Qt include KDE Plasma, Krita, and VirtualBox; device manufacturers use Qt in infotainment systems for automakers such as Volkswagen and BMW and consumer electronics from companies like LG Electronics and Panasonic. In scientific and engineering domains, Qt is used by projects like Matplotlib wrappers, control systems at laboratories (e.g., CERN integrations), and simulation tools from vendors such as ANSYS. Software vendors and independent developers leverage Qt for cross-platform productivity apps, CAD tools, media players like VLC media player ports, and embedded interfaces in medical devices, telecommunications equipment, and industrial automation. Major contributors and users include corporations like Intel, Nokia, Samsung Electronics, and communities around KDE and the Qt Project that maintain modules, plugins, and third-party integrations.
Category:Software