Qt is a cross-platform application development framework widely used for the development of application software that can be run on various software and hardware platforms with little or no change in the underlying codebase, while having the power and speed of native applications. Qt is available with both commercial and open source licenses.
General information
Official logo
About
Qt (pronounced officially as cute (/'kjuːt/) though commonly pronounced as Q.T. (/ˈkjuː.tiː/)) is a cross-platform application development framework widely used for the development of GUI programs (where it functions like a cross-platform widget toolkit), and also used for developing non-GUI programs such as console tools and servers. wikipedia
Qt was created by Trolltech, and was acquired by Nokia in 2008. One month after the end of symbian development at Nokia, Nokia decided to sell Qt. From September 2012 and until now Qt is managed by the Qt Company which is subsidiary of Digia.
License
Qt is available under four different licenses:
- GNU General Public License (GPL) version 3.0
- GNU Lesser General Public License (LGPL) version 2.1
- GNU Lesser General Public License (LGPL) version 3.0
- Qt Commercial License (which comes in three versions with different features and prices: "Indie Mobile", "Professional" and "Enterprise")
Current version
The latest official release is 6.2, released in September 2021. The major version indicates API and binary compatibility.
Recommendations
Tagging
You will often see questions tagged specifically as qt3, qt4, qt5 or qt6 to indicate that the question is related to Qt 3.x, 4.x, 5.x or 6.x respectively. Qt 3.x is no longer supported. The latest released major version is Qt 6.x so, when not specifically mentioned, version 6.x of the API should be assumed for questions posted after September, 2021.
Spelling
The correct spelling is Qt
, not to be confused with QT
, which stands for QuickTime - an extensible multimedia framework developed by Apple Inc.
Resources
Documentation
There is an extensive official documentation (all classes) available on Qt's website, in addition to tutorials and examples. You will often see these tutorials and examples referenced in the questions and answers on this site. Qt also provides an integrated development environment, IDE, named Qt Creator. Although it mainly aims at creating Qt applications, it can be used to create regular C++ applications as well.
Video courses
Pluralsight has a series of three courses on Qt:
- Introduction to Qt: A C++ Cross Platform Application Framework
- Qt Quick Fundamentals
- Integrating Qt Quick and C++
Pluralsight is a subscription based but if you're only interested in Qt you can send the author @todgentille a private tweet and request a week long VIP pass. You'll get unlimited access to the higher subscription level for a week that allows viewing online and offline and you can download the course materials.
Packtpub also has a video tutorial based on Qt 5.
Voidrealm released a full free series of Qt tutorials for beginners on his youtube channel.
Books
Qt introductory books:
- C++ GUI Programming with Qt 4, Second Edition
- Foundations of Qt Development
- Mastering Qt 5: Create stunning cross-platform applications using C++ with Qt Widgets and QML with Qt Quick, 2nd Edition
Integrated learning of Qt and C++:
Concepts of UI design:
- The Design of Everyday Things
- GUI Design Handbook
- Design Patterns - Elements of Reusable Object-Oriented Software
- Macintosh Human Interface Guidelines
- The Microsoft Windows User Experience
- The Icon Book
Check out the official Qt documentation for more details of recommended books about Qt programming.