As shown in the table below, Qt has a range of bindings for various languages [1] that implement some or all of its feature set.
Language | Name: description of binding | QtCore | QtDesigner | QtGui | Equivalent for uic | QtNetwork | QtOpenGL | QtSql | QtScript | QtSvg | QtTest | QtUiTools | QtWebKit | QtXml | License for open-source applications | License for proprietary applications |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada | QtAda | Yes | Yes | Yes | No | No [2] | Yes | Yes | No | No | No | Yes | No | Yes | GNU GPL | GMGPL + fee |
C++ | Qt – native C++ | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | GPL or LGPL | LGPL or Proprietary + fee |
C# & .NET | Qyoto – See also Kimono for KDE | Yes | Yes | Yes | Yes (uics) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL |
C# & .NET | qt4dotnet | Yes | Yes | WIP [3] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL | |
D | QtD | Yes | Yes | Yes | Yes (duic) | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Boost Software License+GPL | Boost Software License+GPL |
Haskell | Qt Haskell | No | ||||||||||||||
Haskell | HsQML | No | BSD License | BSD License | ||||||||||||
Harbour | HbQt | Yes | Yes | Yes | Yes (hbmk2) | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | GNU GPL | LGPL like |
Java | Qt Jambi | Yes | Yes | Yes | Yes (juic) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL |
Julia | through PySide or other [4] | Yes | MIT/LGPL for Python language PySide itself | LGPL | ||||||||||||
Lisp | CommonQt – Bindings for Common Lisp | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | BSD License | BSD License |
Lua | lqt – Bindings | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | MIT | MIT |
Lua | QtLua – Bindings and script engine | LGPL | LGPL | |||||||||||||
Pascal | FreePascal Qt4 | Yes | Yes (lazarus RAD IDE) | Yes | No | Yes | No | No | No | No | No | No | Yes | Yes | LGPL | LGPL |
Perl | PerlQt4 | Yes | Yes | Yes | Yes (puic) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | GNU GPL+Artistic License | Artistic License |
PHP | PHP-Qt | Yes | Yes | Yes | WIP | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL |
Python | PyQt | Yes | Yes | Yes | Yes (pyuic) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | GNU GPL | Proprietary + fee |
Python | PySide | Yes | Yes | Yes | Yes (pysideuic) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL |
Python | PythonQt | Yes | No | Yes | — | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | LGPL | LGPL | |
QML | QML – It is part of Qt | Yes | Yes | Yes | — | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL or Proprietary + fee |
R | qtbase | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | GPL | No | |
Ruby | QtRuby | Yes | Yes | Yes | Yes (rbuic) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | LGPL | LGPL |
Ruby | qtbindings | LGPL | LGPL | |||||||||||||
Scheme | Qt Egg for Chicken Scheme | No | Yes | Yes | No | Yes | Yes | No | No | No | No | Yes | No | No | BSD License | BSD License |
Tcl | qtcl | No | GNU GPL | No | ||||||||||||
Language | Name: description of binding | QtCore | QtDesigner | QtGui | Equivalent for uic | QtNetwork | QtOpenGL | QtSql | QtScript | QtSvg | QtTest | QtUiTools | QtWebKit | QtXml | License for open source applications | License for proprietary applications |
Qt is cross-platform software 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.
The Qt Company is a software company based in Espoo, Finland. It oversees the development of its Qt application framework within the Qt Project. It was formed following the acquisition of Qt by Digia, but was later spun off into a separate, publicly traded company.
Fast Light Toolkit (FLTK) is a cross-platform widget library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but it is also suitable for general GUI programming.
Glade Interface Designer is a graphical user interface builder for GTK, with additional components for GNOME. In its third version, Glade is programming language–independent, and does not produce code for events, but rather an XML file that is then used with an appropriate binding. See List of language bindings for GTK for the available ones.
PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various kinds of UNIX, including Linux and MacOS.
PyGTK is a set of Python wrappers for the GTK graphical user interface library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt/PySide and wxPython, the Python wrappers for Qt and wxWidgets, respectively. Its original author is GNOME developer James Henstridge. There are six people in the core development team, with various other people who have submitted patches and bug reports. PyGTK has been selected as the environment of choice for applications running on One Laptop Per Child systems.
Grace is a free WYSIWYG 2D graph plotting tool, for Unix-like operating systems. The package name stands for "GRaphing, Advanced Computation and Exploration of data." Grace uses the X Window System and Motif for its GUI. It has been ported to VMS, OS/2, and Windows 9*/NT/2000/XP. In 1996, Linux Journal described Xmgr as one of the two most prominent graphing packages for Linux.
QtJambi is a Java binding of the cross-platform application framework Qt. It enables Java developers to use Qt within the Java programming language. In addition, the QtJambi generator can be used to create Java bindings for other Qt libraries and future versions of Qt. Unlike GTK, there are no Swing LAF implementations that use Qt for rendering.
QtScript is a scripting engine that has been part of the Qt cross-platform application framework since version 4.3.0. It was first deprecated and then dropped as of Qt 6.5.
GTK is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.
PySide is a Python binding of the cross-platform GUI toolkit Qt developed by The Qt Company, as part of the Qt for Python project. It is one of the alternatives to the standard library package Tkinter. Like Qt, PySide is free software. PySide supports Linux/X11, macOS, and Microsoft Windows. The project can also be cross compiled to embedded systems like Raspberry Pi, and Android devices.
QML is a user interface markup language. It is a declarative language for designing user interface–centric applications. Inline JavaScript code handles imperative aspects. It is associated with Qt Quick, the UI creation kit originally developed by Nokia within the Qt framework. Qt Quick is used for mobile applications where touch input, fluid animations and user experience are crucial. QML is also used with Qt3D to describe a 3D scene and a "frame graph" rendering methodology. A QML document describes a hierarchical object tree. QML modules shipped with Qt include primitive graphical building blocks, modeling components, behavioral components, and more complex controls. These elements can be combined to build components ranging in complexity from simple buttons and sliders, to complete internet-enabled programs.
Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.
Meta Object System is a part of Qt framework core provided to support Qt extensions to C++ like signals/slots for inter-object communication, run-time type information, and the dynamic property system.
KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, file format support, additional graphical control elements, plotting functions, and spell checking, the collection serves as technological foundation for KDE Plasma 5 and KDE Gear distributed under the GNU Lesser General Public License (LGPL).
qutebrowser is a QtWebEngine web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI. It is keyboard-driven and is inspired by similar software such as Vimperator and dwb. It uses DuckDuckGo as the default search engine. qutebrowser is included in the native repositories of Linux distributions such as Fedora and Arch Linux. qutebrowser is developed by Florian Bruhin, for which he received a CH Open Source award in 2016.