| /**************************************************************************** |
| ** |
| ** Copyright (C) 2019 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \page qtmodules.html |
| \title All Modules |
| \brief A list of all modules in Qt 5. |
| |
| \ingroup classlists |
| |
| \brief Qt 5 consists of essential modules, add-on modules, and tools. |
| |
| \section1 Qt Essentials |
| |
| Qt Essentials define the foundation of Qt on all platforms. They are |
| available on all supported development platforms and on the tested target |
| platforms. Except the testing modules, which will remain source compatible, |
| these modules will remain source and binary compatible throughout Qt 5. |
| |
| Essential modules are general and useful for a majority of Qt applications. |
| A module that is used for a special purpose is considered an add-on module |
| even if it is available on all supported platforms. |
| |
| The following table lists the Qt essentials: |
| |
| \table 80% |
| \header |
| \li Module |
| \li Description |
| \row |
| \li \l[QtCore]{Qt Core} |
| \li Core non-graphical classes used by other modules. |
| \row |
| \li \l[QtGui]{Qt GUI} |
| \li Base classes for graphical user interface (GUI) components. |
| Includes OpenGL. |
| \row |
| \li \l[QtMultimedia]{Qt Multimedia} |
| \li Classes for audio, video, radio and camera functionality. |
| \row |
| \li \l[QtMultimediaWidgets]{Qt Multimedia Widgets} |
| \li Widget-based classes for implementing multimedia functionality. |
| \row |
| \li \l[QtNetwork]{Qt Network} |
| \li Classes to make network programming easier and more portable. |
| \row |
| \li \l[QtQml]{Qt QML} |
| \li Classes for QML and JavaScript languages. |
| \row |
| \li \l[QtQuick]{Qt Quick} |
| \li A declarative framework for building highly dynamic applications |
| with custom user interfaces. |
| \row \li \l{Qt Quick Controls} |
| \li Provides lightweight QML types for creating performant user |
| interfaces for desktop, embedded, and mobile devices. These |
| types employ a simple styling architecture and are very efficient. |
| \row |
| \li \l[QtQuickDialogs]{Qt Quick Dialogs} |
| \li Types for creating and interacting with system dialogs from a |
| Qt Quick application. |
| \row |
| \li \l[QtQuickLayouts]{Qt Quick Layouts} |
| \li Layouts are items that are used to arrange Qt Quick 2 based items in |
| the user interface. |
| \row |
| \li \l[QtQuickTest]{Qt Quick Test} |
| \li A unit test framework for QML applications, where the test cases |
| are written as JavaScript functions. |
| \note The binary compatibility guarantee does not apply to Qt Quick |
| Test. However, it will remain source compatible. |
| \row |
| \li \l[QtSql]{Qt SQL} |
| \li Classes for database integration using SQL. |
| \row |
| \li \l[QtTestLib]{Qt Test} |
| \li Classes for unit testing Qt applications and libraries. |
| \note The binary compatibility guarantee does not apply to Qt Test. |
| However, it will remain source compatible. |
| \row |
| \li \l[QtWidgets]{Qt Widgets} |
| \li Classes to extend Qt GUI with C++ widgets. |
| \endtable |
| |
| If you use \l qmake to build your projects, the \l{Qt Core} and \l{Qt GUI} |
| modules are included by default. To link only against Qt Core, add |
| the following line to your \c .pro file: |
| |
| \code |
| QT -= gui |
| \endcode |
| |
| On Windows, if you do not use \l qmake |
| or other build tools such as \l{CMake Documentation}{CMake}, you also need to link against |
| the \c qtmain library. |
| |
| \section1 Qt Add-Ons |
| |
| \e{Qt Add-On} modules bring additional value for specific purposes. These |
| modules may only be available on some development platform. Many add-on |
| modules are either feature-complete and exist for backwards compatibility, |
| or are only applicable to certain platforms. Each add-on module specifies |
| its compatibility promise separately. |
| |
| The Qt installers include the option of downloading the add-ons. For more |
| information, visit the \l{Getting Started with Qt} page. |
| |
| The following table lists the Qt add-ons: |
| |
| \table 80% |
| \header |
| \li Module |
| \li Development Platforms |
| \li Target Platforms |
| \li Description |
| \row |
| \li \l[ActiveQt]{Active Qt} |
| \li \l{Qt for Windows}{Windows} |
| \li \l{Qt for Windows}{Windows} |
| \li Classes for applications which use ActiveX and COM |
| \row |
| \li \l[Qt3D]{Qt 3D} |
| \li All |
| \li All |
| \li Functionality for near-realtime simulation systems with support |
| for 2D and 3D rendering. |
| \row |
| \li \l[QtAndroidExtras]{Qt Android Extras} |
| \li All |
| \li \l{Qt for Android}{Android} |
| \li Provides platform-specific APIs for Android. |
| \row |
| \li \l[QtBluetooth]{Qt Bluetooth} |
| \li All |
| \li \l{Qt for Android}{Android}, |
| \l{Qt for iOS}{iOS}, \l{Qt for Linux/X11}{Linux}, \l{Qt for macOS}{\macos}, and |
| \l{Qt for UWP}{UWP} (*) |
| \li Provides access to Bluetooth hardware. |
| \row |
| \li \l[QtConcurrent]{Qt Concurrent} |
| \li All |
| \li All (*) |
| \li Classes for writing multi-threaded programs without using low-level |
| threading primitives. |
| \row |
| \li \l[QtDBus]{Qt D-Bus} |
| \li All |
| \li All (*) |
| \li Classes for inter-process communication over the D-Bus protocol. |
| \row |
| \li \l[QtGamepad]{Qt Gamepad} |
| \li All |
| \li \l{Qt for Android}{Android}, \l{Qt for iOS}{iOS}, \l{Qt for macOS}{\macos}, |
| tvOS (including the tvOS remote), \l{Qt for Linux/X11}{Linux}, |
| \l{Qt for Windows}{Windows}, and \l{Qt for QNX}{QNX} |
| \li Enables Qt applications to support the use of gamepad hardware. |
| \row |
| \li \l[QtGraphicalEffects]{Qt Graphical Effects} |
| \li All |
| \li All |
| \li Graphical effects for use with Qt Quick 2. |
| \row |
| \li \l{Qt Help} |
| \li All |
| \li All (*) |
| \li Classes for integrating documentation into applications, similar to Qt Assistant. |
| \row |
| \li \l[QtImageFormats]{Qt Image Formats} |
| \li All |
| \li All |
| \li Plugins for additional image formats: TIFF, MNG, TGA, WBMP. |
| \row |
| \li \l[QtLocation]{Qt Location} |
| \li All |
| \li All |
| \li Displays map, navigation, and place content in a QML application. |
| \row |
| \li \l[QtMacExtras]{Qt Mac Extras} |
| \li All |
| \li \l{Qt for macOS}{\macos} |
| \li Provides platform-specific APIs for \macos. |
| \row |
| \li \l[QtNfc]{Qt NFC} |
| \li All |
| \li \l{Qt for Android}{Android} and \l{Qt for Linux/X11}{Linux} (*) |
| \li Provides access to Near-Field communication (NFC) hardware. |
| \row |
| \li \l[QtOpenGL]{Qt OpenGL} (Deprecated) |
| \li All |
| \li All (*) |
| \li OpenGL support classes. Deprecated in favor of the \c{QOpenGL*} |
| classes in the \l{Qt GUI} module. |
| \row |
| \li \l[QtPlatformHeaders]{Qt Platform Headers} |
| \li \l{Qt for Windows}, \l{Qt for Linux/X11}{Linux}, \l{Qt for macOS}{\macos} |
| \li \l{Qt for Windows}, \l{Qt for Linux/X11}{Linux}, \l{Qt for macOS}{\macos}, \l{Qt for Android}{Android} (*) |
| |
| \li Provides classes that encapsulate platform-specific information, |
| tied to a given runtime configuration of a \l {Qt Platform Abstraction} |
| {platform plugin}. |
| \row |
| \li \l[QtPositioning]{Qt Positioning} |
| \li All |
| \li \l{Qt for Android}{Android}, \l{Qt for iOS}{iOS}, \l{Qt for macOS}{\macos}, |
| \l{Qt for Linux/X11}{Linux}, \l{Qt for UWP}{UWP} (*). |
| \li Provides access to position, satellite and area monitoring classes. |
| \row |
| \li \l[QtPrintSupport]{Qt Print Support} |
| \li All |
| \li All (*) |
| \li Classes to make printing easier and more portable. |
| \row |
| \li \l{Qt Purchasing} |
| \li All |
| \li \l{Qt for Android}{Android}, \l{Qt for iOS}{iOS}, and |
| \l{Qt for macOS}{\macos}. |
| \li Enables in-app purchase of products in Qt applications. |
| \row |
| \li \l[QtQuickControls1]{Qt Quick Controls 1} (Deprecated) |
| \li All |
| \li All (*) |
| \li Reusable Qt Quick based UI controls to create classic desktop-style |
| user interfaces. Deprecated in favor of \l{Qt Quick Controls} 2, which |
| are better and easier to use. |
| \row |
| \li \l[QtQuickExtras]{Qt Quick Extras} |
| \li All |
| \li All (*) |
| \li Provides a specialized set of controls that can be used to build |
| interfaces in Qt Quick. |
| \row |
| \li \l[Qt Quick Timeline]{Qt Quick Timeline} |
| \li All |
| \li All (*) |
| \li Enables keyframe-based animations and parameterization. |
| \row |
| \li \l{Qt Quick Widgets C++ Classes}{Qt Quick Widgets} |
| \li All |
| \li All (*) |
| \li Provides a C++ widget class for displaying a Qt Quick user interface. |
| \row |
| \li \l{Qt Remote Objects} |
| \li All |
| \li All |
| \li Provides an easy to use mechanism for sharing a QObject's API |
| (Properties/Signals/Slots) between processes or devices. |
| \row |
| \li \l[QtScript]{Qt Script} (Deprecated) |
| \li All |
| \li All |
| \li Classes for making Qt applications scriptable. Deprecated in favor |
| of the \c{QJS*} classes in the \l{Qt QML} module. |
| \row \li \l[QtScxml]{Qt SCXML} |
| \li All |
| \li All |
| \li Provides classes and tools for creating state machines from SCXML |
| files and embedding them in applications. |
| \row |
| \li \l[QtScriptTools]{Qt Script Tools} (Deprecated) |
| \li All |
| \li All (*) |
| \li Additional components for applications that use \l{Qt Script}. |
| \row |
| \li \l[QtSensors]{Qt Sensors} |
| \li All |
| \li \l{Qt for Android}{Android}, \l{Qt for iOS}, \l{Qt for UWP}{UWP}, Mer, |
| and \l{Qt for QNX}{QNX}. |
| \li Provides access to sensor hardware and motion gesture recognition. |
| \row |
| \li \l[QtSerialBus]{Qt Serial Bus} |
| \li All |
| \li \l{Qt for Windows}{Windows}, \l{Qt for Linux/X11}{Linux}, |
| \l{Boot2Qt}{Boot to Qt} targets, and \l{Qt for QNX}{QNX}. |
| \li Provides access to serial industrial bus interface. Currently the |
| module supports the CAN bus and Modbus protocols. |
| \row |
| \li \l[QtSerialPort]{Qt Serial Port} |
| \li All |
| \li \l{Qt for Windows}{Windows}, \l{Qt for Linux/X11}{Linux}, \l{Qt for macOS}{\macos}, |
| and \l{Qt for QNX}{QNX}. |
| \li Provides access to hardware and virtual serial ports. |
| \row |
| \li \l[QtSpeech]{Qt Speech} |
| \li All |
| \li All except \l{Qt for QNX}{QNX}. |
| \li Provides support for accessibility features such as text-to-speech. |
| \row |
| \li \l[QtSvg]{Qt SVG} |
| \li All |
| \li All |
| \li Classes for displaying the contents of SVG files. Supports a subset of the |
| \l{http://www.w3.org/TR/SVGTiny12/}{SVG 1.2 Tiny} standard. |
| \row |
| \li \l[QtUITools]{Qt UI Tools} |
| \li All |
| \li All (*) |
| \li Classes for loading QWidget based forms created in \QD dynamically, at runtime. |
| \row |
| \li \l[QtWebChannel]{Qt WebChannel} |
| \li All |
| \li All |
| \li Provides access to QObject or QML objects from HTML clients for seamless |
| integration of Qt applications with HTML/JavaScript clients. |
| \row |
| \li \l[QtWebEngine]{Qt WebEngine} |
| \li All |
| \li \l{Qt for Windows}{Windows}, \l{Qt for Linux/X11}{Linux}, and \l{Qt for macOS}{\macos}. |
| \li Classes and functions for embedding web content in applications using the |
| \l{http://www.chromium.org/Home}{Chromium browser project}. |
| \row |
| \li \l[QtWebSockets]{Qt WebSockets} |
| \li All |
| \li All |
| \li Provides \WebSocket communication compliant with \l{http://tools.ietf.org/html/rfc6455} {RFC 6455}. |
| \row \li \l[QtWebView]{Qt WebView} |
| \li All |
| \li Platforms with a native web engine. |
| \li Displays web content in a QML application by using APIs native to the platform, |
| without the need to include a full web browser stack. |
| \row |
| \li \l[QtWinExtras]{Qt Windows Extras} |
| \li All |
| \li \l{Qt for Windows}{Windows} |
| \li Provides platform-specific APIs for Windows. |
| \row |
| \li \l[QtX11Extras]{Qt X11 Extras} |
| \li All |
| \li \l{Qt for Linux/X11}{Linux/X11} |
| \li Provides platform-specific APIs for X11. |
| \row |
| \li \l[QtXml]{Qt XML} |
| \li All |
| \li All (*) |
| \li C++ implementations of SAX and DOM. |
| \note This module is not required to use QXmlStreamReader and |
| QXmlStreamWriter. They are already part of \l{Qt Core}. |
| \row |
| \li \l[QtXmlPatterns]{Qt XML Patterns} (deprecated) |
| \li All |
| \li All |
| \li Support for XPath, XQuery, XSLT and XML schema validation. |
| \row |
| \li \l{Qt Wayland Compositor} |
| \li \l{Qt for Linux/X11}{Linux} |
| \li \l{Qt for Linux/X11}{Linux} and \l{Boot2Qt}{Boot to Qt} targets. |
| \li Provides a framework to develop a Wayland compositor. |
| \row |
| \header |
| \li {4,1} \target gpl-licensed-addons |
| Add-ons available under Commercial Licenses, or GNU General |
| Public License v3 |
| \row |
| \li \l{Qt Charts} |
| \li All |
| \li All |
| \li UI Components for displaying visually pleasing charts, |
| driven by static or dynamic data models. |
| \row |
| \li \l{Qt Data Visualization} |
| \li All |
| \li All |
| \li UI Components for creating stunning 3D data visualizations. |
| \row |
| \li \l{Qt Lottie Animation} |
| \li All |
| \li All |
| \li A QML API for rendering graphics and animations in JSON format, |
| exported by the \l Bodymovin plugin for Adobe® After Effects. |
| \row |
| \li \l[QtNetworkAuth]{Qt Network Authorization} |
| \li All |
| \li All |
| \li Provides support for OAuth-based authorization to online services. |
| \row |
| \li \l{Qt Virtual Keyboard} |
| \li All |
| \li \l{Qt for Linux/X11}{Linux} and \l{Qt for Windows}{Windows} |
| desktop, and \l{Boot2Qt}{Boot to Qt} targets. |
| \li A framework for implementing different input methods as |
| well as a QML virtual keyboard. Supports localized keyboard |
| layouts and custom visual themes. |
| \row |
| \li \l{Qt for WebAssembly} |
| \li All |
| \li Web browsers with WebAssembly support |
| \li A platform target to compile Qt applications for the web browsers using WebAssembly. |
| \row |
| \li \l[QtQuick3D]{Qt Quick 3D} |
| \li All |
| \li All |
| \li Provides a high-level API for creating 3D content or UIs based on |
| Qt Quick. |
| \row |
| \li \l {Qt Quick WebGL} |
| \li All |
| \li WebGL-enabled web browsers |
| \li Provides a \l {Qt Platform Abstraction} {platform plugin} that |
| allows streaming Qt Quick user interfaces over the network using |
| WebGL™. |
| \endtable |
| |
| (*) The QNX status is not known. |
| |
| \section1 Value-Add Modules |
| |
| In addition to the modules released as part of Qt 5, the following modules |
| and tooling build on top of the Qt libraries to provide additional value. |
| They have their own release schedule, and are available under the |
| commercial license. |
| |
| \table 80% |
| \header |
| \li Feature |
| \li Description |
| \row |
| \li \l{Qt Automotive Suite} |
| \li A collection of software components and tools to enable development |
| of In-Vehicle-Infotainment (IVI) systems. Built on top of the |
| Qt for Device Creation offering and compliant with the GENIVI |
| automotive platform architecture. |
| \row |
| \li \l{Qt for Automation} |
| \li Libraries and tools for automation related domains, such as KNX, |
| OPC UA, and MQTT. |
| \row \li \l{Qt for Device Creation} |
| \li Tools for fast, easy, and fully-integrated embedded device application development. |
| Included in most other value-add solutions. |
| \row \li \l{Qt for MCUs} |
| \li Offers a complete graphics framework and toolkit with everything |
| needed to design, develop, and deploy GUIs on microcontroller |
| units (MCUs). Applications can run either on bare metal or on a |
| real-time operating system. |
| \endtable |
| |
| \section1 Qt Tools |
| |
| \e{Qt Tools} run on all the supported development platforms and facilitate |
| the development and design of applications. |
| |
| The following table lists the Qt tools: |
| |
| \table 80% |
| \header |
| \li Tool |
| \li Description |
| \row |
| \li \l{Qt Designer} |
| \li Classes for extending \QD. |
| \row |
| \li \l{Qt Distance Field Generator Manual}{Qt Distance Field Generator} |
| \li Generates distance field information for text entities in an application UI. |
| |
| \endtable |
| |
| \section1 Where to Go from Here |
| |
| We invite you to explore the rest of Qt. We prepared overviews which help |
| you decide which APIs to use and our examples demonstrate how to use our |
| API. |
| |
| \list |
| \li \l{Qt Overviews} - list of topics about application development |
| \li \l{Qt Examples and Tutorials}{Examples and Tutorials} - code samples and tutorials |
| \li \l{Qt Reference Pages} - a listing of C++ and QML APIs |
| \endlist |
| |
| */ |