# Table of Contents - [Qt 6.10](#qt-6-10) - [Qt Quick Dialogs | Qt 6.10.1](#qt-quick-dialogs-qt-6-10-1) - [Qt Network | Qt 6.10.1](#qt-network-qt-6-10-1) - [Qt Quick Test | Qt 6.10.1](#qt-quick-test-qt-6-10-1) - [Qt Documentation | Home](#qt-documentation-home) - [Qt D-Bus | Qt 6.10.1](#qt-d-bus-qt-6-10-1) - [Qt Test | Qt 6.10.1](#qt-test-qt-6-10-1) - [Qt CoAP | Qt 6.10.1](#qt-coap-qt-6-10-1) - [Qt Image Formats | Qt 6.10.1](#qt-image-formats-qt-6-10-1) - [Qt Help | Qt 6.10.1](#qt-help-qt-6-10-1) - [Qt Quick Layouts | Qt Quick | Qt 6.10.1](#qt-quick-layouts-qt-quick-qt-6-10-1) - [Qt Lottie Animation | Qt 6.10.1](#qt-lottie-animation-qt-6-10-1) - [Qt MQTT | Qt 6.10.1](#qt-mqtt-qt-6-10-1) - [Qt Qml | Qt 6.10.1](#qt-qml-qt-6-10-1) - [Qt Graphs | Qt 6.10.1](#qt-graphs-qt-6-10-1) - [Qt GRPC | Qt 6.10.1](#qt-grpc-qt-6-10-1) - [Qt HTTP Server | Qt 6.10.1](#qt-http-server-qt-6-10-1) - [Qt Network Authorization | Qt 6.10.1](#qt-network-authorization-qt-6-10-1) - [All Modules | Qt 6.10](#all-modules-qt-6-10) - [Qt Widgets | Qt 6.10.1](#qt-widgets-qt-6-10-1) - [Qt Quick | Qt 6.10.1](#qt-quick-qt-6-10-1) - [Qt Concurrent | Qt 6.10.1](#qt-concurrent-qt-6-10-1) - [Qt Bluetooth | Qt 6.10.1](#qt-bluetooth-qt-6-10-1) - [Qt GUI | Qt 6.10.1](#qt-gui-qt-6-10-1) - [Qt Core | Qt 6.10.1](#qt-core-qt-6-10-1) - [Qt NFC | Qt 6.10.1](#qt-nfc-qt-6-10-1) - [Qt OPC UA | Qt 6.10.1](#qt-opc-ua-qt-6-10-1) - [What's New in Qt 6.10 | Qt 6.10](#what-s-new-in-qt-6-10-qt-6-10) - [Qt Multimedia | Qt 6.10.1](#qt-multimedia-qt-6-10-1) - [Qt Quick Controls | Qt 6.10.1](#qt-quick-controls-qt-6-10-1) - [Qt OpenGL](#qt-opengl) - [Qt Positioning | Qt 6.10.1](#qt-positioning-qt-6-10-1) - [Qt Serial Bus | Qt 6.10.1](#qt-serial-bus-qt-6-10-1) - [Qt 6.10](#qt-6-10) --- # Qt 6.10 Search Qt 6.10 ======= Qt is a full development framework with tools designed to streamline the creation of applications and user interfaces for desktop, embedded, and mobile platforms. See [what's new in Qt 6.10](https://doc.qt.io/qt-6/whatsnew610.html) . Essentials[](https://doc.qt.io/qt-6/#essentials "Direct link to this headline") -------------------------------------------------------------------------------- [Qt Essentials](https://doc.qt.io/qt-6/qtmodules.html#qt-essentials) define the foundation of Qt on all platforms. * ### Qt Core Core non-graphical classes used by other modules. [](https://doc.qt.io/qt-6/qtcore-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt D-Bus Classes for inter-process communication over the D-Bus protocol. [](https://doc.qt.io/qt-6/qtdbus-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt GUI Base classes for graphical user interface (GUI) components. [](https://doc.qt.io/qt-6/qtgui-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Network Classes to make network programming easier and more portable. [](https://doc.qt.io/qt-6/qtnetwork-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Qml Classes for QML and JavaScript languages. [](https://doc.qt.io/qt-6/qtqml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick A declarative framework for building highly dynamic applications with custom UIs. [](https://doc.qt.io/qt-6/qtquick-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Controls Lightweight QML types for creating performant user interfaces for desktop, embedded, and mobile devices. [](https://doc.qt.io/qt-6/qtquickcontrols-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Dialogs Types for creating and interacting with system dialogs from a Qt Quick application. [](https://doc.qt.io/qt-6/qtquickdialogs-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Layouts Layouts are items that are used to arrange Qt Quick 2 based items in the user interface. [](https://doc.qt.io/qt-6/qtquicklayouts-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Test A unit test framework for QML applications, where the test cases are written as JavaScript functions. [](https://doc.qt.io/qt-6/qtquicktest-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Test Classes for unit testing Qt applications and libraries. [](https://doc.qt.io/qt-6/qttest-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Widgets Classes to extend Qt GUI with C++ widgets. [](https://doc.qt.io/qt-6/qtwidgets-index.html) [](https://doc.qt.io/qt-6/#) Add-ons and Extensions[](https://doc.qt.io/qt-6/#add-ons-and-extensions "Direct link to this headline") -------------------------------------------------------------------------------------------------------- Qt add-on and extension modules bring additional value for specific purposes. For more information, see [All Modules](https://doc.qt.io/qt-6/qtmodules.html) . * ### Active Qt Classes for applications which use ActiveX and COM (Windows only). [](https://doc.qt.io/qt-6/activeqt-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Bluetooth Provides access to Bluetooth hardware. [](https://doc.qt.io/qt-6/qtbluetooth-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt CoAP Implements the client side of CoAP defined by RFC 7252. [](https://doc.qt.io/qt-6/qtcoap-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Concurrent Classes for writing multi-threaded programs without using low-level threading primitives. [](https://doc.qt.io/qt-6/qtconcurrent-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Graphs Provides functionality for visualizing data in 3D as bar, scatter, and surface graphs, as well as 2D in area, bar, donut, line, pie, scatter, and spline graphs. [](https://doc.qt.io/qt-6/qtgraphs-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt GRPC Provides an ability to generate Qt-based classes from protobuf specifications used to communicate with gRPC® services. [](https://doc.qt.io/qt-6/qtgrpc-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Help Classes for integrating documentation into applications. [](https://doc.qt.io/qt-6/qthelp-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt HTTP Server A framework for embedding an HTTP server into a Qt application. [](https://doc.qt.io/qt-6/qthttpserver-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Image Formats Plugins for additional image formats: TIFF, MNG, TGA, WBMP. [](https://doc.qt.io/qt-6/qtimageformats-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Lottie Animation A QML API for rendering graphics and animations in JSON format, exported by the Bodymovin plugin for Adobe® After Effects. [](https://doc.qt.io/qt-6/qtlottieanimation-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt MQTT Provides an implementation of the MQTT protocol specification. [](https://doc.qt.io/qt-6/qtmqtt-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Multimedia A rich set of QML types and C++ classes to handle multimedia content. Also includes APIs to handle camera access. [](https://doc.qt.io/qt-6/qtmultimedia-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Network Authorization Provides support for OAuth-based authorization to online services. [](https://doc.qt.io/qt-6/qtnetworkauth-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt NFC Provides access to Near-Field communication (NFC) hardware. On desktop platforms NDEF access is only supported for Type 4 tags. [](https://doc.qt.io/qt-6/qtnfc-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt OPC UA Protocol for data modeling and exchange of data in industrial applications. [](https://doc.qt.io/qt-6/qtopcua-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt OpenGL C++ classes that make it easy to use OpenGL in Qt applications. A separate library (Qt OpenGL Widgets) provides a widget for rendering OpenGL graphics. [](https://doc.qt.io/qt-6/qtopengl-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Positioning Provides access to position, satellite info and area monitoring classes. [](https://doc.qt.io/qt-6/qtpositioning-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Print Support Classes to make printing easier and more portable. [](https://doc.qt.io/qt-6/qtprintsupport-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Protobuf Provides an ability to generate Qt-based classes from protobuf specifications. [](https://doc.qt.io/qt-6/qtprotobuf-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick 3D Provides a high-level API for creating 3D content or UIs based on Qt Quick. [](https://doc.qt.io/qt-6/qtquick3d-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick 3D Physics Qt Quick 3D Physics provides a high-level QML module adding physical simulation capabilities to Qt Quick 3D. [](https://doc.qt.io/qt-6/qtquick3dphysics-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Widgets Provides a C++ widget class for displaying a Qt Quick user interface. [](https://doc.qt.io/qt-6/qtquickwidgets-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Effects Provides QML types for applying one or more simple graphical effects to Qt Quick items. [](https://doc.qt.io/qt-6/qtquick-effects-qmlmodule.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Particles Provides QML types for particle effects. [](https://doc.qt.io/qt-6/qtquick-particles-qmlmodule.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Timeline Enables keyframe-based animations and parameterization. [](https://doc.qt.io/qt-6/qtquicktimeline-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Remote Objects Provides an easy to use mechanism for sharing a QObject's API (Properties/Signals/Slots) between processes or devices. [](https://doc.qt.io/qt-6/qtremoteobjects-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SCXML Provides classes and tools for creating state machines from SCXML files and embedding them in applications. [](https://doc.qt.io/qt-6/qtscxml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Sensors Provides access to sensor hardware on Android, iOS, and Windows platforms. [](https://doc.qt.io/qt-6/qtsensors-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Serial Bus Provides access to serial industrial bus interfaces. Currently, the module supports the CAN bus and Modbus protocols. [](https://doc.qt.io/qt-6/qtserialbus-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Serial Port Provides classes to interact with hardware and virtual serial ports. [](https://doc.qt.io/qt-6/qtserialport-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Shader Tools Provides tools for the cross-platform Qt shader pipeline. These enable processing graphics and compute shaders to make them usable for Qt Quick and other components in the Qt ecosystem. [](https://doc.qt.io/qt-6/qtshadertools-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Spatial Audio Provides support for spatial audio. Create sound scenes in 3D space containing different sound sources and room related properties such as reverb. [](https://doc.qt.io/qt-6/qtspatialaudio-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SQL Classes for database integration using SQL. [](https://doc.qt.io/qt-6/qtsql-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt State Machine Provides classes for creating and executing state graphs. [](https://doc.qt.io/qt-6/qtstatemachine-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SVG Classes for displaying the contents of SVG files. Supports a subset of the SVG 1.2 Tiny standard. A separate library (Qt SVG Widgets) provides support for rendering SVG files in a widget UI. [](https://doc.qt.io/qt-6/qtsvg-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt TextToSpeech Provides support for synthesizing speech from text and playing it as audio output. [](https://doc.qt.io/qt-6/qttexttospeech-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt UI Tools Classes for loading QWidget based forms created in Qt Widgets Designer dynamically, at runtime. [](https://doc.qt.io/qt-6/qtuitools-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Virtual Keyboard A framework for implementing different input methods as well as a QML virtual keyboard. Supports localized keyboard layouts and custom visual themes. [](https://doc.qt.io/qt-6/qtvirtualkeyboard-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Wayland Compositor Provides a framework to develop a Wayland compositor on Linux and Boot to Qt targets. [](https://doc.qt.io/qt-6/qtwaylandcompositor-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebChannel Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients. [](https://doc.qt.io/qt-6/qtwebchannel-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebSockets Provides WebSocket communication compliant with RFC 6455. [](https://doc.qt.io/qt-6/qtwebsockets-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebView Displays web content in a QML application by using APIs native to the platform, without the need to include a full web browser stack. [](https://doc.qt.io/qt-6/qtwebview-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt XML Handling of XML in a Document Object Model (DOM) API. [](https://doc.qt.io/qt-6/qtxml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt 5 Compatibility APIs: Graphical Effects Qt Graphical Effects module from Qt 5 provided for compatibility. [](https://doc.qt.io/qt-6/qtgraphicaleffects5-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt 5 Core Compatibility APIs Qt Core APIs that were in Qt 5 but not Qt 6. [](https://doc.qt.io/qt-6/qtcore5-index.html) [](https://doc.qt.io/qt-6/#) Qt extension modules: * ### Qt WebEngine Classes and functions for embedding web content in applications using the Chromium browser project. [](https://doc.qt.io/qt-6/qtwebengine-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt PDF Classes and functions for rendering PDF documents on desktop platforms. [](https://doc.qt.io/qt-6/qtpdf-index.html) [](https://doc.qt.io/qt-6/#) Tools[](https://doc.qt.io/qt-6/#tools "Direct link to this headline") ---------------------------------------------------------------------- A cross-platform [integrated development environment](https://doc.qt.io/qtcreator/index.html) , design tools, and [more](https://doc.qt.io/qt-6/topics-app-development.html) . Licenses Used in Qt[](https://doc.qt.io/qt-6/#licenses-used-in-qt "Direct link to this headline") -------------------------------------------------------------------------------------------------- Qt Framework and tools are available under both open-source and commercial [licenses](https://doc.qt.io/qt-6/licensing.html) . The commercially licensed Qt contains additional functionality and productivity tools. For details, see [https://www.qt.io/download/](https://www.qt.io/download/) . © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Quick Dialogs | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Quick Dialogs On this page Qt Quick Dialogs ================ The Qt Quick Dialogs module allows you to create and interact with system dialogs from QML. The module was introduced in Qt 6.2. Using the Module[](https://doc.qt.io/qt-6/qtquickdialogs-index.html#using-the-module "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------- The QML types of the module are available through the `QtQuick.Dialogs` import. To use the types, add the following import statement to your .qml file: import QtQuick.Dialogs Reference[](https://doc.qt.io/qt-6/qtquickdialogs-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------------- * [QML Types](https://doc.qt.io/qt-6/qtquick-dialogs-qmlmodule.html) Related Modules[](https://doc.qt.io/qt-6/qtquickdialogs-index.html#related-modules "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Qt Quick](https://doc.qt.io/qt-6/topics-graphics2d.html#qt-quick) * [Qt Quick Controls](https://doc.qt.io/qt-6/qtquickcontrols-index.html) * [Qt Quick Templates 2](https://doc.qt.io/qt-6/qtquicktemplates2-index.html) * [Qt Labs Platform](https://doc.qt.io/qt-6/qtlabsplatform-index.html) License and Attributions[](https://doc.qt.io/qt-6/qtquickdialogs-index.html#license-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------------- Qt Quick Dialogs is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Network | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Network On this page Qt Network ========== The Qt Network module provides a set of APIs for programming applications that use TCP/IP. Operations such as requests, cookies, and sending data over HTTP are handled by various C++ classes. Using the Module[](https://doc.qt.io/qt-6/qtnetwork-index.html#using-the-module "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtnetwork-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Network) target\_link\_libraries(mytarget PRIVATE Qt6::Network) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtnetwork-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= network Articles and Guides[](https://doc.qt.io/qt-6/qtnetwork-index.html#articles-and-guides "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- These articles contain information about Qt Network setup and about applications with networking capabilities. * [Network Programming with Qt](https://doc.qt.io/qt-6/qtnetwork-programming.html) - Programming applications with networking capabilities * [Secure Sockets Layer (SSL) Classes](https://doc.qt.io/qt-6/ssl.html) - Classes for secure communication over network sockets API Reference[](https://doc.qt.io/qt-6/qtnetwork-index.html#api-reference "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- These are links to the API reference materials. * [C++ Classes](https://doc.qt.io/qt-6/qtnetwork-module.html) Module Evolution[](https://doc.qt.io/qt-6/qtnetwork-index.html#module-evolution "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- [Changes to Qt Network](https://doc.qt.io/qt-6/network-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qtnetwork-index.html#licenses-and-attributions "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------------------- Qt Network is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt Network in Qt 6.10.1 may contain third-party modules under the following permissive licenses: | | | | --- | --- | | [The Public Suffix List, version 2025-06-16\_09-45-02\_UTC](https://doc.qt.io/qt-6/qtnetwork-attribution-psl-data.html) | Mozilla Public License 2.0 | | [libpsl - C library to handle the Public Suffix List, version 664f3dc85259ec65e30248a61fa1c45b7b0e4c3f](https://doc.qt.io/qt-6/qtnetwork-attribution-libpsl.html) | BSD 3-clause "New" or "Revised" License | Qt Network can make use of the [OpenSSL Toolkit](https://www.openssl.org/) as a back end. The library is then linked against OpenSSL in a way that requires compliance with the [OpenSSL License](https://www.openssl.org/source/license.html) . To allow linking OpenSSL with Qt Network under the GPL, following exceptions to the GPL do apply: In addition, as a special exception, the copyright holders listed above give permission to link the code of its release of Qt with the OpenSSL project's "OpenSSL" library (or modified versions of the "OpenSSL" library that use the same license as the original version), and distribute the linked executables. You must comply with the GNU General Public License version 2 in all respects for all of the code used other than the "OpenSSL" code. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version of this file. Also note shipping OpenSSL might cause [Import and Export Restrictions](https://doc.qt.io/qt-6/ssl.html#import-and-export-restrictions) to apply. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Quick Test | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Quick Test On this page Qt Quick Test ============= Introduction[](https://doc.qt.io/qt-6/qtquicktest-index.html#introduction "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- [Qt Quick Test](https://doc.qt.io/qt-6/qttest-qmlmodule.html) is a unit test framework for QML applications. Test cases are written as JavaScript functions within a [TestCase](https://doc.qt.io/qt-6/qml-qttest-testcase.html) type: import QtQuick 2.3 import QtTest 1.0 [TestCase](https://doc.qt.io/qt-6/qml-qttest-testcase.html) { name: "MathTests" function test\_math() { compare(2 + 2, 4, "2 + 2 = 4") } function test\_fail() { compare(2 + 2, 5, "2 + 2 = 5") } } Functions whose names start with `test_` are treated as test cases to be executed. See the documentation for the [TestCase](https://doc.qt.io/qt-6/qml-qttest-testcase.html) and [SignalSpy](https://doc.qt.io/qt-6/qml-qttest-signalspy.html) types for more information on writing test cases. **Note:** There is no binary compatibility guarantee for the Qt Quick Test module. This means that an application that uses Qt Quick Test is only guaranteed to work with the Qt version it was developed against. However, source compatibility is guaranteed. Using the Module[](https://doc.qt.io/qt-6/qtquicktest-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ ### QML API[](https://doc.qt.io/qt-6/qtquicktest-index.html#qml-api "Direct link to this headline") The QML types in Qt Quick Test are available through the `QtTest` import. To use the types, add the following import statement to your .qml file: import QtTest ### C++ API[](https://doc.qt.io/qt-6/qtquicktest-index.html#c-api "Direct link to this headline") Using the [C++ API](https://doc.qt.io/qt-6/qtquicktest-module.html) requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . #### Building with CMake[](https://doc.qt.io/qt-6/qtquicktest-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the Qt6 package: find\_package(Qt6 REQUIRED COMPONENTS QuickTest) target\_link\_libraries(mytarget PRIVATE Qt6::QuickTest) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. #### Building with qmake[](https://doc.qt.io/qt-6/qtquicktest-index.html#building-with-qmake "Direct link to this headline") There are two ways to link against the corresponding C++ library. If your test project uses a QML [TestCase](https://doc.qt.io/qt-6/qml-qttest-testcase.html) , you should already have the following line in your project file: CONFIG += qmltestcase This will cause the test to link to the C++ QtQuickTest library. If you have a C++-only test project, you can add the following line to your project file: QT += qmltest Running Tests[](https://doc.qt.io/qt-6/qtquicktest-index.html#running-tests "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ Test cases are launched by a C++ harness that consists of the following code: #include QUICK\_TEST\_MAIN(example) Where "example" is the identifier to use to uniquely identify this set of tests. CMake qmake Configure your CMakeLists.txt file and build your project using your favorite generator. cmake\_minimum\_required(VERSION 3.2) project(tst\_example LANGUAGES CXX) enable\_testing() find\_package(Qt6 REQUIRED COMPONENTS QuickTest Qml) #\[\[The test harness scans the specified source directory recursively\ for "tst\_\*.qml" files. By default, it looks in the current directory,\ which is usually where the executable is. This command makes it look\ in the project's source directory instead.\]\] add\_definitions(-DQUICK\_TEST\_SOURCE\_DIR="${CMAKE\_CURRENT\_SOURCE\_DIR}") qt\_standard\_project\_setup(REQUIRES 6.6) add\_executable(tst\_example tst\_example.cpp) add\_test(NAME tst\_example COMMAND tst\_example) target\_link\_libraries(tst\_example PRIVATE Qt6::QuickTest Qt6::Qml ) Add `CONFIG += qmltestcase` to your project file: TEMPLATE = app TARGET = tst\_example CONFIG += warn\_on qmltestcase SOURCES += tst\_example.cpp If `IMPORTPATH` is specified in your .pro file, each import path added to `IMPORTPATH` will be passed as a command-line argument when the test is run using "make check": IMPORTPATH += $$PWD/../imports/my\_module1 $$PWD/../imports/my\_module2 The test harness scans the specified source directory recursively for "tst\_\*.qml" files. If `QUICK_TEST_SOURCE_DIR` is not defined, then the current directory will be scanned when the harness is run. Other \*.qml files may appear for auxillary QML components that are used by the test. The `-input` command-line option can be set at runtime to run test cases from a different directory. This may be needed to run tests on a target device where the compiled-in directory name refers to a host. For example: tst\_example -input /mnt/SDCard/qmltests It is also possible to run a single file using the `-input` option. For example: tst\_example -input data/test.qml tst\_example -input /test.qml **Note:** Specifying the full path to the qml test file is for example needed for shadow builds. If your test case needs QML imports, then you can add them as `-import` options to the test program command-line. The `-functions` command-line option will return a list of the current tests functions. It is possible to run a single test function using the name of the test function as an argument. For example: tst\_example Test\_Name::function1 The `-help` command-line option will return all the options available. tst\_example -help **Note:** Running a Qt Quick test case will always show a window on the screen, even if the test code doesn't involve any Quick UI. To avoid that, run the test executable with `-platform offscreen`. Executing C++ Before QML Tests[](https://doc.qt.io/qt-6/qtquicktest-index.html#executing-c-before-qml-tests "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------------- To execute C++ code before any of the QML tests are run, the [QUICK\_TEST\_MAIN\_WITH\_SETUP](https://doc.qt.io/qt-6/qquicktest.html#QUICK_TEST_MAIN_WITH_SETUP) macro can be used. This can be useful for setting context properties on the QML engine, amongst other things. The macro is identical to `QUICK_TEST_MAIN`, except that it takes an additional type argument. The test framework will call slots and invokable functions with the following names: | Name | Purpose | Since | | --- | --- | --- | | `void applicationAvailable()` | Called right after the QApplication object was instantiated. Use this function to perform setup that does not require a [QQmlEngine](https://doc.qt.io/qt-6/qqmlengine.html)
instance. | Qt 5.12 | | `void qmlEngineAvailable(QQmlEngine *)` | Called when the QML engine is available. Any [import paths](https://doc.qt.io/qt-6/qqmlengine.html#addImportPath)
, [plugin paths](https://doc.qt.io/qt-6/qqmlengine.html#addPluginPath)
, and [extra file selectors](https://doc.qt.io/qt-6/qqmlfileselector.html#setExtraSelectors)
will have been set on the engine by this point.

This function is called once for each QML test file, so any arguments are unique to that test. For example, this means that each QML test file will have its own QML engine.

This function can be used to [register QML types](https://doc.qt.io/qt-6/qtqml-cppintegration-overview.html#choosing-the-correct-integration-method-between-c-and-qml)
and [add import paths](https://doc.qt.io/qt-6/qqmlengine.html#addImportPath)
, amongst other things. | Qt 5.11 | | `void cleanupTestCase()` | Called right after the test execution has finished. Use this function to clean up before everything will start to be destructed. | Qt 5.12 | The following example demonstrates how the macro can be used to set context properties on the QML engine: // src\_qmltest\_qquicktest.cpp #include #include #include #include class Setup : public [QObject](https://doc.qt.io/qt-6/qobject.html) { Q\_OBJECT public: Setup() {} public slots: void applicationAvailable() { // Initialization that only requires the QGuiApplication object to be available } void qmlEngineAvailable([QQmlEngine](https://doc.qt.io/qt-6/qqmlengine.html) \*engine) { // Initialization requiring the QQmlEngine to be constructed engine\-\>rootContext()\-\>setContextProperty("myContextProperty", [QVariant](https://doc.qt.io/qt-6/qvariant.html) (true)); } void cleanupTestCase() { // Implement custom resource cleanup } }; QUICK\_TEST\_MAIN\_WITH\_SETUP(mytest, Setup) #include "src\_qmltest\_qquicktest.moc" The `.moc` include is based on the file name of the `.cpp` file. For example, in the example above, the `.cpp` file is named `src_qmltest_qquicktest.cpp`. If the file was named `MyTest.cpp`, the include would be: #include "MyTest.moc" Reference[](https://doc.qt.io/qt-6/qtquicktest-index.html#reference "Direct link to this headline") ---------------------------------------------------------------------------------------------------- * [QML Types](https://doc.qt.io/qt-6/qttest-qmlmodule.html) * [C++ API](https://doc.qt.io/qt-6/qtquicktest-module.html) Licenses[](https://doc.qt.io/qt-6/qtquicktest-index.html#licenses "Direct link to this headline") -------------------------------------------------------------------------------------------------- Qt Quick Tests is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Documentation | Home Search The Future of Digital Experiences ================================= Welcome to the documentation pages for [Qt](https://qt.io/) , the cross-platform software development framework. * ### Get Qt * [Get and install Qt](https://doc.qt.io/qt/get-and-install-qt.html) * [Build Qt from source](https://doc.qt.io/qt/build-sources.html) * [Qt Debian packages (Technology Preview)](https://doc.qt.io/qt/qt-debian-packages.html) * ### Framework * [Qt modules](https://doc.qt.io/qt-6/index.html) * [Additional libraries](https://doc.qt.io/qt.html#additionallibraries) * [Long-term support releases](https://doc.qt.io/qt.html#qt-lts) * ### Get started * [New to Qt](https://doc.qt.io/qt/gettingstarted.html) * [Port from 5 to 6](https://doc.qt.io/qt/portingguide.html) * ### API reference * [C++](https://doc.qt.io/qt/reference-overview.html) * [QML](https://doc.qt.io/qt/qmlreference.html) * [Python](https://doc.qt.io/qt.html#qtforpython) * ### Tools * [Qt Creator](https://doc.qt.io/qtcreator/) * [Design Studio](https://doc.qt.io/qtdesignstudio/) * [Qt Insight](https://doc.qt.io/qtinsight/) * ### Quality Assurance * [Squish](https://doc.qt.io/squish/index.html) * [Coco](https://doc.qt.io/coco/index.html) * [Test Center](https://doc.qt.io/testcenter/index.html) * [All tools](https://doc.qt.io/tools.html) * ### Embedded * [Qt for MCUs](https://doc.qt.io/QtForMCUs/) * [Boot to Qt](https://doc.qt.io/embedded.html#boot2qt) * [Qt for Android Automotive](https://doc.qt.io/embedded.html#qtforandroidautomotive) * [All embedded topics](https://doc.qt.io/embedded.html) * * [All Qt Documentation](https://doc.qt.io/all-topics.html) External Resources ------------------ * ### Qt Wiki Community-maintained Qt articles [Qt Wiki](https://wiki.qt.io/) * ### Qt Forum Discussion board for Qt-related topics [Qt Forum](https://forum.qt.io/) * ### Bug Reports Bug tracker for Qt and related projects [Bug Reports](https://bugreports.qt.io/) * ### Code Review Review tool for contributing to Qt [Code Review](https://codereview.qt-project.org/) * ACADEMY #### Learn Qt development with Qt Academy Interactive courses, tutorials, and learning paths for Qt developers. [Qt Academy](https://www.qt.io/academy) * RESOURCES #### Learn what you can achieve with Qt Webinars, tutorials, videos, and more. [Qt Resource Center](https://resources.qt.io/) [© 2025 The Qt Company](https://www.qt.io/about-us?hsLang=en) . The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd. --- # Qt D-Bus | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt D-Bus On this page Qt D-Bus ======== D-Bus is an Inter-Process Communication (IPC) and Remote Procedure Calling (RPC) mechanism originally developed for Linux to replace existing and competing IPC solutions with one unified protocol. It was also designed to allow communication between system-level processes (such as printer and hardware driver services) and normal user processes. It uses a fast, binary message-passing protocol, which is suitable for same-machine communication due to its low latency and low overhead. Its specification is currently defined by the `freedesktop.org` project and is available to all parties. Communication, in general, happens through a central server application called the "bus" (hence the name), but direct application-to-application communication is also possible. When communicating on a bus, applications can query which other applications and services are available, as well as activate one on demand. Using the Module[](https://doc.qt.io/qt-6/qtdbus-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS DBus) target\_link\_libraries(mytarget PRIVATE Qt6::DBus) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. Articles and Guides[](https://doc.qt.io/qt-6/qtdbus-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- The following documents contain information about Qt's D-Bus integration features and provide details about the mechanisms used to send and receive type information over the bus: * [Qt D-Bus Overview](https://doc.qt.io/qt-6/qtdbus-overview.html) * [Using Qt D-Bus Adaptors](https://doc.qt.io/qt-6/usingadaptors.html) * [The Qt D-Bus Type System](https://doc.qt.io/qt-6/qdbustypesystem.html) * [Qt D-Bus XML compiler (qdbusxml2cpp)](https://doc.qt.io/qt-6/qdbusxml2cpp.html) * [Qt D-Bus Viewer](https://doc.qt.io/qt-6/qdbusviewer.html) Examples[](https://doc.qt.io/qt-6/qtdbus-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------- * [Qt D-Bus Examples](https://doc.qt.io/qt-6/examples-dbus.html) Reference[](https://doc.qt.io/qt-6/qtdbus-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [Qt D-Bus C++ Classes](https://doc.qt.io/qt-6/qtdbus-module.html) * [CMake Commands in Qt6 DBus](https://doc.qt.io/qt-6/cmake-commands-qtdbus.html) Module Evolution[](https://doc.qt.io/qt-6/qtdbus-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- [Changes to Qt D-Bus](https://doc.qt.io/qt-6/dbus-changes-qt6.html) lists important changes in the module API and functionality that were made for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qtdbus-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- The Qt D-Bus module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt D-Bus in Qt 6.10.1 may contain third party modules under the following permissive licenses: | | | | --- | --- | | [libdus-1 headers, version dbus-1.13.12](https://doc.qt.io/qt-6/qtdbus-attribution-libdbus-1-headers.html) | Academic Free License v2.1, or GNU General Public License v2.0 or later | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Test | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Test On this page Qt Test ======= The Qt Test module provides C++ API for [unit testing](https://doc.qt.io/qt-6/qtest-overview.html#creating-a-test) and [benchmarking](https://doc.qt.io/qt-6/qtest-overview.html#creating-a-benchmark) Qt applications and libraries. Most of the API can be found in the [QTest](https://doc.qt.io/qt-6/qtest.html) namespace. In addition, the [QSignalSpy](https://doc.qt.io/qt-6/qsignalspy.html) class provides easy introspection for Qt's signals and slots, and the [QAbstractItemModelTester](https://doc.qt.io/qt-6/qabstractitemmodeltester.html) allows for non-destructive testing of item models. **Note:** There is no binary compatibility guarantee for the Qt Test module. This means that an application that uses Qt Test is only guaranteed to work with the Qt version it was developed against. However, source compatibility is guaranteed. Using the Module[](https://doc.qt.io/qt-6/qttest-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qttest-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Test) target\_link\_libraries(mytarget PRIVATE Qt6::Test) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qttest-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= testlib Articles and Guides[](https://doc.qt.io/qt-6/qttest-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Qt Test Overview](https://doc.qt.io/qt-6/qtest-overview.html) * [Qt Test Best Practices](https://doc.qt.io/qt-6/qttest-best-practices-qdoc.html) * [Qt Test Tutorial](https://doc.qt.io/qt-6/qtest-tutorial.html) Reference[](https://doc.qt.io/qt-6/qttest-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [Qt Test C++ Classes](https://doc.qt.io/qt-6/qttest-module.html) The [Qt Quick Test](https://doc.qt.io/qt-6/qtquicktest-index.html) module enables unit testing of Qt Quick applications. * [Qt Quick Test QML Types](https://doc.qt.io/qt-6/qttest-qmlmodule.html) * [Qt Quick Test C++ API](https://doc.qt.io/qt-6/qtquicktest-module.html) Module Evolution[](https://doc.qt.io/qt-6/qttest-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- [Changes to Qt Test](https://doc.qt.io/qt-6/testlib-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qttest-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- Qt Test is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt Test in Qt 6.10.1 may contain third party modules under the following permissive licenses: | | | | --- | --- | | [Catch2, version 2.13.10](https://doc.qt.io/qt-6/qttestlib-attribution-catch2.html) | Boost Software License 1.0 | | [Cycle, version 3.3.10](https://doc.qt.io/qt-6/qttestlib-attribution-cycle.html) | MIT License | | [Linux Performance Events, version 6.13](https://doc.qt.io/qt-6/qttestlib-attribution-linuxperf.html) | GNU General Public License v2.0 only with Linux Syscall Note | | [Valgrind, version 3.25.1](https://doc.qt.io/qt-6/qttestlib-attribution-valgrind.html) | BSD 4-clause "Original" or "Old" License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt CoAP | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt CoAP On this page Qt CoAP ======= Constrained Application Protocol ([CoAP](https://coap.technology/) ) is a machine-to-machine (M2M) web transfer protocol for use with constrained nodes and constrained networks in the Internet of Things (IoT). It is designed to easily interface with HTTP for integration with the Web, while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments. The Qt CoAP module implements the client side of CoAP defined by [RFC 7252](https://datatracker.ietf.org/doc/html/rfc7252) . Generally, CoAP is designed to use datagram-oriented transport such as UDP, so the current implementation of the transport is based on UDP. However implementing custom transports based on TCP, WebSocket, and so on, is also possible. The Qt CoAP module supports: * Security based on Datagram TLS (DTLS) over UDP * Group communication defined by [RFC 7390](https://datatracker.ietf.org/doc/html/rfc7390) * Blockwise transfers defined by [RFC 7959](https://datatracker.ietf.org/doc/html/rfc7959) * Resource observation defined by [RFC 7641](https://datatracker.ietf.org/doc/html/rfc7641) * Resource discovery (multicast and single server) Using the Module[](https://doc.qt.io/qt-6/qtcoap-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtcoap-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Coap) target\_link\_libraries(mytarget PRIVATE Qt6::Coap) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtcoap-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= coap Articles and Guides[](https://doc.qt.io/qt-6/qtcoap-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Overview](https://doc.qt.io/qt-6/qtcoap-overview.html) Examples[](https://doc.qt.io/qt-6/qtcoap-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------- * [Qt CoAP Examples](https://doc.qt.io/qt-6/qtcoap-examples.html) Reference[](https://doc.qt.io/qt-6/qtcoap-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtcoap-module.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtcoap-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- Qt CoAP is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Image Formats | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Image Formats On this page Qt Image Formats ================ The core Qt Gui library by default supports reading and writing image files of the most common file formats: `PNG`, `JPEG`, `BMP`, `GIF` and a few more, ref. [Reading and Writing Image Files](https://doc.qt.io/qt-6/qimage.html#reading-and-writing-image-files) . The Qt Image Formats add-on module provides optional support for other image file formats. The file format support is provided transparently, through plugins for Qt's image I/O system. As such, this module provides no API of its own. Instead, the functionality is accessed in the same way as other image I/O in Qt: through [QImage::load](https://doc.qt.io/qt-6/qimage.html#load) () and [QImage::save](https://doc.qt.io/qt-6/qimage.html#save) (). Or, for more detailed control, through [QImageReader](https://doc.qt.io/qt-6/qimagereader.html) and [QImageWriter](https://doc.qt.io/qt-6/qimagewriter.html) . The Image I/O Plugins[](https://doc.qt.io/qt-6/qtimageformats-index.html#the-image-i-o-plugins "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- The actual coding and decoding of the file format is done by a codec library. The codec can be Qt or third party code. In case of a third party codec, the build process will look for it among the system libraries. If not found, it may fall back on using a bundled copy (in `src/3rdparty`). | Format | Description | Support | 3rd Party Codec | | --- | --- | --- | --- | | HEIC | High Efficiency Video Coding | No | | | | \- On Apple operating systems: | Read/write | Yes, OS built-in | | ICNS | Apple Icon Image | Read/write | No | | JP2 | Joint Photographic Experts Group 2000 | Read/write | Yes (Not bundled) | | | \- On Apple operating systems: | Read/write | Yes, OS built-in | | MNG | Multiple-image Network Graphics | Read | Yes (Not bundled) | | TGA | Truevision Graphics Adapter | Read | No | | TIFF | Tagged Image File Format | Read/write | Yes (bundled) | | WBMP | Wireless Bitmap | Read/write | No | | WEBP | WebP | Read/write | Yes (bundled) | **Note:** Some bundled third party codecs are not maintained anymore. They are provided for manual builds only, and not used as a fallback in case system libraries are unavailable. **Note:** For security reasons, the Direct Draw Surface (DDS) handler is not built by default since Qt 5.8. Users who still want this handler can build it from the source project. ### Deployment[](https://doc.qt.io/qt-6/qtimageformats-index.html#deployment "Direct link to this headline") When built, the Qt Image Formats plugins are located as dynamic libraries in the runtime plugin directory (typically `plugins/imageformats`), together with the default image format plugins. They may be deployed to the target system in the same way as other plugins, see the [Deploying Plugins](https://doc.qt.io/qt-6/deployment-plugins.html) documentation. Licenses and Attributions[](https://doc.qt.io/qt-6/qtimageformats-index.html#licenses-and-attributions "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------------------------- Qt Image Formats is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore Qt Image Formats potentially contains third party modules under following permissive licenses: | | | | --- | --- | | [TIFF Software Distribution (libtiff), version 4.7.1](https://doc.qt.io/qt-6/qtimageformats-attribution-libtiff.html) | libtiff License | | [WebP (libwebp), version 1.6.0](https://doc.qt.io/qt-6/qtimageformats-attribution-libwebp.html) | BSD 3-clause "New" or "Revised" License | Security Considerations[](https://doc.qt.io/qt-6/qtimageformats-index.html#security-considerations "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------------- Since these file formats are more rarely used, the codecs may be less thoroughly debugged against potential security holes. As always, care should be taken when creating applications that may be used to decode uncontrolled data files. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Help | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Help On this page Qt Help ======= The Qt help system includes tools for generating and viewing Qt help files. In addition, it provides classes for accessing help contents programmatically to be able to integrate online help into Qt applications. Getting Started[](https://doc.qt.io/qt-6/qthelp-index.html#getting-started "Direct link to this headline") ----------------------------------------------------------------------------------------------------------- To link against the Qt Help module, add this line to the project file: QT +\= help Articles and Guides[](https://doc.qt.io/qt-6/qthelp-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- The classes and tools supplied with Qt to enable developers to include online help and documentation in their applications are described in more detail in [The Qt Help Framework](https://doc.qt.io/qt-6/qthelp-framework.html) . API Reference[](https://doc.qt.io/qt-6/qthelp-index.html#api-reference "Direct link to this headline") ------------------------------------------------------------------------------------------------------- These are links to the API reference material: * [C++ Classes](https://doc.qt.io/qt-6/qthelp-module.html) License Information[](https://doc.qt.io/qt-6/qthelp-index.html#license-information "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- Qt Help is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Quick Layouts | Qt Quick | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * [Qt Quick](https://doc.qt.io/qt-6/qtquick-index.html) * [Important Concepts In Qt Quick - Positioning](https://doc.qt.io/qt-6/qtquick-positioning-topic.html) * Qt Quick Layouts On this page [Right-to-left User Interfaces](https://doc.qt.io/qt-6/qtquick-positioning-righttoleft.html) [Overview](https://doc.qt.io/qt-6/qtquicklayouts-overview.html) Qt Quick Layouts ================ Qt Quick Layouts are a set of QML types used to arrange items in a user interface. In contrast to [positioners](https://doc.qt.io/qt-6/qtquick-positioning-layouts.html) , Qt Quick Layouts can also resize their child items. This makes them well suited for resizable user interfaces. Visit the [Qt Quick Layouts Overview](https://doc.qt.io/qt-6/qtquicklayouts-overview.html) page to get started. Using the Module[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#using-the-module "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------- The QML types of the module are available through the `QtQuick.Layouts` import. To use the types, add the following import statement to your .qml file: import QtQuick.Layouts Layouts[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#layouts "Direct link to this headline") --------------------------------------------------------------------------------------------------- | | | | --- | --- | | [ColumnLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-columnlayout.html) | Identical to GridLayout, but having only one column | | [FlexboxLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-flexboxlayout.html) | QML construct provides a flex layout for the quick items | | [GridLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-gridlayout.html) | Provides a way of dynamically arranging items in a grid | | [Layout](https://doc.qt.io/qt-6/qml-qtquick-layouts-layout.html) | Provides attached properties for items pushed onto a GridLayout, RowLayout or ColumnLayout | | [LayoutItemProxy](https://doc.qt.io/qt-6/qml-qtquick-layouts-layoutitemproxy.html) | Placeholder for QQuickItems in layouts | | [RowLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-rowlayout.html) | Identical to GridLayout, but having only one row | | [StackLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-stacklayout.html) | Stack of items where only one item is visible at a time | Articles and Guides[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#articles-and-guides "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------------- * [Qt Quick Layouts Overview](https://doc.qt.io/qt-6/qtquicklayouts-overview.html) * [Qt Quick Responsive Layouts](https://doc.qt.io/qt-6/qtquicklayouts-responsive.html) Examples[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#examples "Direct link to this headline") ----------------------------------------------------------------------------------------------------- * [Qt Quick Layouts - Basic Example](https://doc.qt.io/qt-6/qtquick-layouts-example.html) * [Qt Quick Layouts - Responsive Layout Example](https://doc.qt.io/qt-6/qtquick-responsivelayouts-example.html) Reference[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------------- * [Qt Quick Layouts QML Types](https://doc.qt.io/qt-6/qtquick-layouts-qmlmodule.html) Related Modules[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#related-modules "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Qt Quick](https://doc.qt.io/qt-6/qtquick-index.html) Licenses[](https://doc.qt.io/qt-6/qtquicklayouts-index.html#licenses "Direct link to this headline") ----------------------------------------------------------------------------------------------------- Qt Quick Layouts is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. [Right-to-left User Interfaces](https://doc.qt.io/qt-6/qtquick-positioning-righttoleft.html) [Overview](https://doc.qt.io/qt-6/qtquicklayouts-overview.html) © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Lottie Animation | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Lottie Animation On this page Qt Lottie Animation =================== _Qt Lottie Animation_ provides QML APIs for rendering graphics and animations in Lottie format files. These are typically exported from the [Lottie](https://lottiefiles.com/plugins/after-effects) plugins for Adobe After Effects. The [LottieAnimation](https://doc.qt.io/qt-6/qml-qt-labs-lottieqt-lottieanimation.html) item renders animations into an intermediate buffer using the [QPainter](https://doc.qt.io/qt-6/topics-graphics2d.html#qpainter) software renderer. This may impose some performance restrictions on the sizes of illustrations, as well as on the target hardware. As an alternative, an experimental tool called [lottietoqml](https://doc.qt.io/qt-6/lottietoqml.html) is included. This tool converts Lottie animations to QML. As a result, they can be rendered using the hardware-accelerated renderer in Qt Quick. The tool is currently considered to be in _technical preview_. It does not support the full range of features supported by _Qt Lottie Animation_ yet, and incompatible changes should be expected. Finally, the [VectorImage](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html) Qt Quick item can load Lottie format files directly. It converts them to QML on the fly using the _lottietoqml_ \[tech preview\] functionality in a plugin. Getting Started[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#getting-started "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- Import the types using the the following statement: import Qt.labs.lottieqt Limitations[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#limitations "Direct link to this headline") -------------------------------------------------------------------------------------------------------------- The implementation follows the [master specification for lottie](https://lottie.github.io/lottie-spec/1.0/) . Deviations in exported Lottie files compared to the specification are taken into account as much as possible when differences are noticed. ### General limitations[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#general-limitations "Direct link to this headline") * expressions are not supported * the timeline only supports frame-mode, not time-mode **Warning:** The input files for Qt Lottie Animation are assumed to be trusted content. Application developers are advised to never pass in data from untrusted sources. ### Animation level limitations[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#animation-level-limitations "Direct link to this headline") The following properties are not supported: * `assets` - reusable text and images * `chars` text ### Layers[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#layers "Direct link to this headline") The following properties are not supported: * `ao` (auto-orientation) * `bm` (blend mode) * `maskProperties` (masks) * `sr` (time stretch) ### Shapes[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#shapes "Direct link to this headline") Some more rarely used elements and shapes are not supported, including: * the `gstroke` (gradient stroke) element * Nested Repeater shapes Also note that the behavior when using multiple active trim paths (e.g. trim paths in nested groups) is unpredictable. ### Effects[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#effects "Direct link to this headline") The only supported effects are `Slide` and `Layer Fill`. ### Examples[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#examples "Direct link to this headline") * The [qtlottieviewer Example](https://doc.qt.io/qt-6/qtlottieanimation-qtlottieviewer-example.html) demonstrates how to use the [LottieAnimation](https://doc.qt.io/qt-6/qml-qt-labs-lottieqt-lottieanimation.html) item to load, display and control a Lottie file in a Qt Quick application. * The [lottietoqml Example](https://doc.qt.io/qt-6/qtlottieanimation-lottietoqml-example.html) demonstrates how the [lottietoqml](https://doc.qt.io/qt-6/lottietoqml.html) tool can be used to convert Lottie files into Qt Quick scenes and load these in an application. Licenses[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#licenses "Direct link to this headline") -------------------------------------------------------------------------------------------------------- Qt Lottie Animation is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Reference[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#reference "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- * [QML Types](https://doc.qt.io/qt-6/qt-labs-lottieqt-qmlmodule.html) Related Information[](https://doc.qt.io/qt-6/qtlottieanimation-index.html#related-information "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------ * [Lottie on GitHub](https://github.com/airbnb/lottie-web) © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt MQTT | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt MQTT On this page Qt MQTT ======= [MQTT](https://www.mqtt.org/) is a machine-to-machine (M2M) protocol utilizing the publish-and-subscribe paradigm. Its purpose is to provide a channel with minimal communication overhead. Generally, MQTT is used on top of a TCP connection. However, the base requirement is defined as an ordered, lossless, bidirectional connection. The Qt MQTT module provides a standard compliant implementation of the MQTT protocol specification. It enables applications to act as telemetry displays and devices to publish telemetry data. The supported versions are MQTT 3.1, MQTT 3.1.1, and MQTT 5.0. Using the Module[](https://doc.qt.io/qt-6/qtmqtt-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtmqtt-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Mqtt) target\_link\_libraries(mytarget PRIVATE Qt6::Mqtt) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtmqtt-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= mqtt Articles and Guides[](https://doc.qt.io/qt-6/qtmqtt-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Overview](https://doc.qt.io/qt-6/qtmqtt-overview.html) Examples[](https://doc.qt.io/qt-6/qtmqtt-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------- * [Qt MQTT Examples](https://doc.qt.io/qt-6/qtmqtt-examples.html) Reference[](https://doc.qt.io/qt-6/qtmqtt-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtmqtt-module.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtmqtt-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- Qt MQTT is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Qml | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Qml On this page Qt Qml ====== The Qt Qml module provides a framework for developing applications and libraries with the [QML language](https://doc.qt.io/qt-6/qmlreference.html) . It defines and implements the language and engine infrastructure, and provides an API to enable application developers to [register](https://doc.qt.io/qt-6/qtqml-index.html#registering-qml-types-and-qml-modules) custom QML types and modules and integrate QML code with JavaScript and C++. The Qt Qml module provides both a [QML API](https://doc.qt.io/qt-6/qtqml-qmlmodule.html) and a [C++ API](https://doc.qt.io/qt-6/qtqml-module.html) . Using the Module[](https://doc.qt.io/qt-6/qtqml-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ ### QML API[](https://doc.qt.io/qt-6/qtqml-index.html#qml-api "Direct link to this headline") The QML types of the module are available through the `QtQml` import. To use the types, add the following import statement to your .qml file: import QtQml The Qt Qml module contains the QML framework and important QML types used in applications. The constructs of QML are described in the [The QML Reference](https://doc.qt.io/qt-6/qmlreference.html) . The [QML API](https://doc.qt.io/qt-6/qtqml-qmlmodule.html) of the Qt Qml module provides a number of [QML Object Types](https://doc.qt.io/qt-6/qtqml-typesystem-objecttypes.html) , [QML Value Types](https://doc.qt.io/qt-6/qtqml-typesystem-valuetypes.html) and namespaces. ### C++ API[](https://doc.qt.io/qt-6/qtqml-index.html#c-api "Direct link to this headline") Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . The C++ API contains some [important classes](https://doc.qt.io/qt-6/qtqml-cppclasses-topic.html) you should get familiar with. It also provides [types](https://doc.qt.io/qt-6/qtqml-integrating-with-js-values-from-cpp.html) to hold JavaScript values. #### Building with CMake[](https://doc.qt.io/qt-6/qtqml-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Qml) target\_link\_libraries(mytarget PRIVATE Qt6::Qml) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. To provide foreign QML type support for a non-QML library, locate the `QmlIntegration` module as follows: find\_package(Qt6 REQUIRED COMPONENTS QmlIntegration) target\_link\_libraries(mytarget PRIVATE Qt6::QmlIntegration) See [qt6\_generate\_foreign\_qml\_types](https://doc.qt.io/qt-6/qt-generate-foreign-qml-types.html) for details. #### Building with qmake[](https://doc.qt.io/qt-6/qtqml-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= qml Registering QML Types and QML Modules[](https://doc.qt.io/qt-6/qtqml-index.html#registering-qml-types-and-qml-modules "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------------------------------ In order to register types for usage with QML you first need to define a [QML module](https://doc.qt.io/qt-6/qtqml-writing-a-module.html) , preferably using [qt\_add\_qml\_module](https://doc.qt.io/qt-6/qt-add-qml-module.html) in CMake. Then, you can add C++ headers to your new module, and [define types](https://doc.qt.io/qt-6/qtqml-cppintegration-definetypes.html) to be [exposed to QML](https://doc.qt.io/qt-6/qtqml-cppintegration-exposecppattributes.html) in them. Tweaking the engine[](https://doc.qt.io/qt-6/qtqml-index.html#tweaking-the-engine "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ There are a number of knobs you can turn to customize the behavior of the QML engine. The page on [configuring the JavaScript engine](https://doc.qt.io/qt-6/qtqml-javascript-finetuning.html) lists the environment variables you may use to this effect. The description of the [QML Disk Cache](https://doc.qt.io/qt-6/qmldiskcache.html) describes the options related to how your QML components are compiled and loaded. Articles and Guides[](https://doc.qt.io/qt-6/qtqml-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ These articles contain information about Qt Qml. * [The QML Reference](https://doc.qt.io/qt-6/qmlreference.html) * [Qt Qml Tooling](https://doc.qt.io/qt-6/qtqml-tooling.html) * [Writing QML Modules](https://doc.qt.io/qt-6/qtqml-writing-a-module.html) * [Singletons in QML](https://doc.qt.io/qt-6/qml-singleton.html) Reference[](https://doc.qt.io/qt-6/qtqml-index.html#reference "Direct link to this headline") ---------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtqml-module.html) * [QML Types](https://doc.qt.io/qt-6/qtqml-qmlmodule.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtqml-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------ Qt Qml is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore Qt Qml in Qt 6.10.1 may contain third party modules under following permissive licenses: | | | | --- | --- | | [JavaScriptCore Macro Assembler](https://doc.qt.io/qt-6/qtqml-attribution-masm.html) | BSD 2-clause "Simplified" License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Graphs | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Graphs On this page Qt Graphs ========= The Qt Graphs module enables you to visualize data in 2D and 3D graphs. In the 3D realm there is support for bar, scatter, and surface graphs. It's especially useful for visualizing depth maps and large quantities of rapidly changing data, such as data received from multiple sensors. The look and feel of graphs can be customized by using themes or by adding custom items and labels. In the 2D realm, there is support for area, bar, donut, line, pie, scatter, and spline graphs, and they are easily combinable with any other QML content. Qt Graphs is built on Qt 6 and the 3D graphs on Qt Quick 3D to take advantage of hardware acceleration and Qt Quick. Using the Module[](https://doc.qt.io/qt-6/qtgraphs-index.html#using-the-module "Direct link to this headline") --------------------------------------------------------------------------------------------------------------- ### QtGraphs QML API[](https://doc.qt.io/qt-6/qtgraphs-index.html#qtgraphs-qml-api "Direct link to this headline") The QML types of the module are available through the `QtGraphs` import. To use the types, add the following import statement to your .qml file: import QtGraphs ### C++ API[](https://doc.qt.io/qt-6/qtgraphs-index.html#c-api "Direct link to this headline") Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/resources.html#qmake) . #### Building with CMake[](https://doc.qt.io/qt-6/qtgraphs-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Graphs) target\_link\_libraries(mytarget PRIVATE Qt6::Graphs) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. #### Building with qmake[](https://doc.qt.io/qt-6/qtgraphs-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= graphs #### Building a widget application[](https://doc.qt.io/qt-6/qtgraphs-index.html#building-a-widget-application "Direct link to this headline") * [Building With Widgets](https://doc.qt.io/qt-6/qtgraphswidgets-index.html) Articles and Guides[](https://doc.qt.io/qt-6/qtgraphs-index.html#articles-and-guides "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------- ### Limiting Features[](https://doc.qt.io/qt-6/qtgraphs-index.html#limiting-features "Direct link to this headline") In cases the target of an application is some embedded hardware with limited specifications, it is possible to build only 2D or 3D support into the module. For more information, see [configuring Qt Graphs](https://doc.qt.io/qt-6/qtgraphs-configure-options.html) . ### Qt Graphs for 2D[](https://doc.qt.io/qt-6/qtgraphs-index.html#qt-graphs-for-2d "Direct link to this headline") * [Overview](https://doc.qt.io/qt-6/qtgraphs-overview-2d.html) * [Migration Guide from Qt Charts](https://doc.qt.io/qt-6/qtgraphs-migration-guide-2d.html) ### Qt Graphs for 3D[](https://doc.qt.io/qt-6/qtgraphs-index.html#qt-graphs-for-3d "Direct link to this headline") * [Overview](https://doc.qt.io/qt-6/qtgraphs-overview-3d.html) * [Data Handling](https://doc.qt.io/qt-6/qtgraphs-data-handling.html) * [Interacting with Data](https://doc.qt.io/qt-6/qtgraphs-interacting-with-data.html) * [Migration Guide from Qt DataVisualization](https://doc.qt.io/qt-6/qtgraphs-migration-guide.html) * [Integration with Qt Quick 3D](https://doc.qt.io/qt-6/qtgraphs-and-qtquick3d-integration-guide.html) * [Known Issues](https://doc.qt.io/qt-6/qtgraphs-known-issues.html) ### Qt Graphs Common[](https://doc.qt.io/qt-6/qtgraphs-index.html#qt-graphs-common "Direct link to this headline") * [Theme Overview](https://doc.qt.io/qt-6/qtgraphs-overview-theme.html) Examples[](https://doc.qt.io/qt-6/qtgraphs-index.html#examples "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [Qt Graphs Examples](https://doc.qt.io/qt-6/graphs-examples.html) API Reference[](https://doc.qt.io/qt-6/qtgraphs-index.html#api-reference "Direct link to this headline") --------------------------------------------------------------------------------------------------------- * [Qt Graphs C++ Classes](https://doc.qt.io/qt-6/graphs.html) * [Qt Graphs QML Types](https://doc.qt.io/qt-6/graphs-qml.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtgraphs-index.html#licenses-and-attributions "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------------------- Qt Graphs is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt GRPC | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt GRPC On this page Qt GRPC ======= Qt GRPC, together with the [Qt Protobuf](https://doc.qt.io/qt-6/qtprotobuf-index.html) module, enables fast and space-efficient communication with gRPC[™](https://doc.qt.io/qt-6/trademarks.html) servers. It integrates gRPC services seamlessly into the Qt framework, allowing communication across different programming languages or environments regardless of whether the server is based on Qt. Overview[](https://doc.qt.io/qt-6/qtgrpc-index.html#overview "Direct link to this headline") --------------------------------------------------------------------------------------------- gRPC is a cross-platform, high-performance Remote Procedure Call (RPC) framework. It uses the Protobuf compiler (`protoc`) to generate client and server interfaces from `service` sections in a protobuf schema for various programming languages. It is commonly used to connect services in microservices-style architectures or to link mobile applications and browsers with backend systems. For more details, see the [gRPC Introduction](https://grpc.io/docs/what-is-grpc/introduction/) . Qt GRPC consists of C++ and Qt Quick APIs that handle the asynchronous nature of Remote Procedure Calls using the well-known [Signals & Slots](https://doc.qt.io/qt-6/signalsandslots.html) mechanism. It also provides command-line tools and a CMake API to streamline the generation of Qt-specific interfaces using `protoc`. Qt GRPC currently supports **client-side** functionality. This means it can communicate with a gRPC-compatible server. This could be your own server with its protobuf API or a publicly available API, such as the [Google APIs](https://github.com/googleapis/googleapis) . Using the Module[](https://doc.qt.io/qt-6/qtgrpc-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- ### Module prerequisites[](https://doc.qt.io/qt-6/qtgrpc-index.html#module-prerequisites "Direct link to this headline") * `protoc`, the Protocol Buffers compiler, is required to run the Qt code generator plugins. See [Protoc Installation](https://grpc.io/docs/protoc-installation/) . * Optional: [SSL](https://doc.qt.io/qt-6/ssl.html) support. * Optional: [gRPC C++](https://github.com/grpc/grpc/blob/master/src/cpp/README.md) for running the examples. **Note:** See the [Example of installation for Windows using vcpkg](https://doc.qt.io/qt-6/qtprotobuf-installation-windows-vcpkg.html) for instructions on installing gRPC and _Protobuf_, and running Qt GRPC examples. ### C++ API[](https://doc.qt.io/qt-6/qtgrpc-index.html#c-api "Direct link to this headline") To add protobuf files to a Qt-based project and generate the required source code, use the `protoc` compiler along with the `qtgrpcgen` and `qtprotobufgen` Qt plugins. * [The qtprotobufgen Tool](https://doc.qt.io/qt-6/qtprotobufgen-qt-tool.html) generates Qt classes from protobuf **message** definitions. Use the [qt\_add\_protobuf](https://doc.qt.io/qt-6/qt-add-protobuf.html) CMake command to automate this process. * [The qtgrpcgen Tool](https://doc.qt.io/qt-6/qtgrpcgen-qt-tool.html) generates interfaces from protobuf **service** definitions. Use the [qt\_add\_grpc](https://doc.qt.io/qt-6/qt-add-grpc.html) CMake command to automate this process. A minimal example of a CMake project file that uses Qt GRPC can look like this: cmake\_minimum\_required(VERSION 3.16...3.22) project(MyProject) find\_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc) qt\_standard\_project\_setup() qt\_add\_executable(MyApp main.cpp) qt\_add\_protobuf(MyApp PROTO\_FILES path/to/messages.proto ) qt\_add\_grpc(MyApp CLIENT PROTO\_FILES path/to/service.proto ) target\_link\_libraries(MyApp PRIVATE Qt6::Protobuf Qt6::Grpc) ### QML API[](https://doc.qt.io/qt-6/qtgrpc-index.html#qml-api "Direct link to this headline") The QML types of the module are available through the `QtGrpc` import. To use the types, add the following import statement to your .qml file: import QtGrpc Articles and Guides[](https://doc.qt.io/qt-6/qtgrpc-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- * [Qt GRPC Client Guide](https://doc.qt.io/qt-6/qtgrpc-clientguide-example.html) * [CMake Commands in Qt6 GRPC](https://doc.qt.io/qt-6/cmake-commands-qtgrpc.html) * [Qt GRPC Security Considerations](https://doc.qt.io/qt-6/qtgrpc-security.html) References[](https://doc.qt.io/qt-6/qtgrpc-index.html#references "Direct link to this headline") ------------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtgrpc-module.html) * [Qt GRPC Quick](https://doc.qt.io/qt-6/qtgrpc-qmlmodule.html) Examples[](https://doc.qt.io/qt-6/qtgrpc-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------- * [Qt GRPC Examples](https://doc.qt.io/qt-6/qtgrpc-examples.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtgrpc-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- The Qt GRPC module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt GRPC in Qt 6.10.1 may contain third party modules under the following permissive licenses: | | | | --- | --- | | [gRPC, version 1.50.1](https://doc.qt.io/qt-6/qtgrpc-attribution-grpc.html) | Apache License 2.0 | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt HTTP Server | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt HTTP Server On this page Qt HTTP Server ============== Qt HTTP Server supports building HTTP server functionality into an application. Common use cases are exposing the application's functionality through REST APIs, or making devices in a trusted environment configurable also via HTTP. The limitations are described in [Limitations and Security](https://doc.qt.io/qt-6/qthttpserver-index.html#limitations-and-security) . Overview[](https://doc.qt.io/qt-6/qthttpserver-index.html#overview "Direct link to this headline") --------------------------------------------------------------------------------------------------- Qt HTTP Server provides building blocks for embedding a lightweight HTTP server based on [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616) and [RFC 9113](https://datatracker.ietf.org/doc/html/rfc9113) in an application. There are classes for the messages sent and received, and for the various parts of an HTTP server. The [QHttpServer](https://doc.qt.io/qt-6/qhttpserver.html) class has a [route](https://doc.qt.io/qt-6/qhttpserver.html#route) () function to bind callables to different incoming URLs. These callables can take as arguments an [extensible](https://doc.qt.io/qt-6/qhttpserverrouter.html#addConverter) collection of different copyable types that are parsed from the URL. Types supported are most numeric types, [QString](https://doc.qt.io/qt-6/qstring.html) , [QByteArray](https://doc.qt.io/qt-6/qbytearray.html) , and [QUrl](https://doc.qt.io/qt-6/qurl.html) . Optionally the callables can also take [QHttpServerRequest](https://doc.qt.io/qt-6/qhttpserverrequest.html) and [QHttpServerResponder](https://doc.qt.io/qt-6/qhttpserverresponder.html) objects as arguments. The [QHttpServerRequest](https://doc.qt.io/qt-6/qhttpserverrequest.html) class contains all the information of an incoming request, and is needed to get the [body](https://doc.qt.io/qt-6/qhttpserverrequest.html#body) () from a POST HTTP request. The callables either return a [QHttpServerResponse](https://doc.qt.io/qt-6/qhttpserverresponse.html) object or respond using the [QHttpServerResponder](https://doc.qt.io/qt-6/qhttpserverresponder.html) argument. The [QHttpServerResponse](https://doc.qt.io/qt-6/qhttpserverresponse.html) class contains a complete response and has numerous constructors for different types, while the [QHttpServerResponder](https://doc.qt.io/qt-6/qhttpserverresponder.html) has various methods for writing back to the client. The [QHttpServer](https://doc.qt.io/qt-6/qhttpserver.html) class also has an [addAfterRequestHandler](https://doc.qt.io/qt-6/qhttpserver.html#addAfterRequestHandler) () function to process a [QHttpServerResponse](https://doc.qt.io/qt-6/qhttpserverresponse.html) further, and a [setMissingHandler](https://doc.qt.io/qt-6/qhttpserver.html#setMissingHandler) () function to override the default behavior of returning `404 Not Found` when no routes are matched. From the [QAbstractHttpServer](https://doc.qt.io/qt-6/qabstracthttpserver.html) class it inherits a [bind](https://doc.qt.io/qt-6/qabstracthttpserver.html#bind) () function to bind to a listening [QTcpServer](https://doc.qt.io/qt-6/qtcpserver.html) , [QSslServer](https://doc.qt.io/qt-6/qsslserver.html) , or [QLocalServer](https://doc.qt.io/qt-6/qlocalserver.html) . An HTTP server can also be created by subclassing the [QAbstractHttpServer](https://doc.qt.io/qt-6/qabstracthttpserver.html) class and overriding the [handleRequest](https://doc.qt.io/qt-6/qabstracthttpserver.html#handleRequest) () and [missingHandler](https://doc.qt.io/qt-6/qabstracthttpserver.html#missingHandler) () functions. Runtime logging can be configured as described [here](https://doc.qt.io/qt-6/qthttpserver-logging.html) . Limitations and Security[](https://doc.qt.io/qt-6/qthttpserver-index.html#limitations-and-security "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------------- Qt HTTP Server does not have many of the more advanced features and optimizations that general-purpose HTTP servers have. It also has not seen the same scrutiny regarding various attack vectors over the network. Use Qt HTTP Server, therefore, only for local connections or in a trusted network, and do not expose the ports to the internet. You can add HTTPS support as a basic security measure, though. If Qt is compiled with support for TLS, you can bind the HTTP server to a [QSslServer](https://doc.qt.io/qt-6/qsslserver.html) object, providing Transport Layer Security handling. The [QSslSocket::SupportedFeature::ServerSideAlpn](https://doc.qt.io/qt-6/qsslsocket.html#SupportedFeature-enum) feature from the active TLS backend is needed for HTTP/2 support. To check if a backend supports this, use [QSslSocket::isFeatureSupported](https://doc.qt.io/qt-6/qsslsocket.html#isFeatureSupported) . Using the Module[](https://doc.qt.io/qt-6/qthttpserver-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake. ### Building with CMake[](https://doc.qt.io/qt-6/qthttpserver-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the Qt6 package: find\_package(Qt6 REQUIRED COMPONENTS HttpServer) target\_link\_libraries(mytarget PRIVATE Qt6::HttpServer) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qthttpserver-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file: QT += httpserver Licenses[](https://doc.qt.io/qt-6/qthttpserver-index.html#licenses "Direct link to this headline") --------------------------------------------------------------------------------------------------- Qt HTTP Server is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Reference[](https://doc.qt.io/qt-6/qthttpserver-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------------- * [Qt HTTP Server Logging](https://doc.qt.io/qt-6/qthttpserver-logging.html) * [C++ Classes](https://doc.qt.io/qt-6/qthttpserver-module.html) Examples[](https://doc.qt.io/qt-6/qthttpserver-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------------- The module provides the following [Examples](https://doc.qt.io/qt-6/qthttpserver-examples.html) as a guide to using the API. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Network Authorization | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Network Authorization On this page Qt Network Authorization ======================== Qt Network Authorization provides a set of APIs that enable Qt applications to implement common authorization and authentication protocols. For example, an application can implement access controls such as providing limited access to online accounts and HTTP services without exposing user passwords. This module focuses on [OAuth 2.0](https://oauth.net/2/) and provides limited support for [OpenID](http://openid.net/) . Refer to the section below about [supported protocols](https://doc.qt.io/qt-6/qtnetworkauth-index.html#supported-authorization-and-authentication-protocols) . Using the Module[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#using-the-module "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake. ### Building with CMake[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the Qt6 package: find\_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target\_link\_libraries(mytarget PRIVATE Qt6::NetworkAuth) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file: QT += networkauth Supported Authorization and Authentication Protocols[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#supported-authorization-and-authentication-protocols "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Qt Network Authorization module supports functionalities from: * [OAuth 1](https://oauth.net/1/) * [OAuth 2.0](https://oauth.net/2/) * [OpenID](http://openid.net/) * [OpenID Connect](http://openid.net/connect/) These systems use a trusted _authorization server_ for issuing access tokens so that users do not send credentials to resources and resource owners do not directly manage user credentials. For example, a user of a cloud-based photo album website does not have to worry about passing their credentials to the website. Instead, the credentials are managed by a trusted authorization service through a web interface. Articles and Guides[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#articles-and-guides "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------- * [OAuth 2.0 Overview](https://doc.qt.io/qt-6/qt-oauth2-overview.html) * [Qt OAuth2 Browser Support](https://doc.qt.io/qt-6/qt-oauth2-browsersupport.html) Licenses[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#licenses "Direct link to this headline") ---------------------------------------------------------------------------------------------------- Qt Network Authorization is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU General Public License, version 3](https://www.gnu.org/licenses/gpl-3.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Examples[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#examples "Direct link to this headline") ---------------------------------------------------------------------------------------------------- * [Qt Network Authorization Examples](https://doc.qt.io/qt-6/examples-qtnetworkauth.html) API Reference[](https://doc.qt.io/qt-6/qtnetworkauth-index.html#api-reference "Direct link to this headline") -------------------------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtnetworkauth-module.html) © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # All Modules | Qt 6.10 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * [Qt Reference Pages](https://doc.qt.io/qt-6/reference-overview.html) * All Modules On this page [All Functions and Macros](https://doc.qt.io/qt-6/functions.html) [Getting Started](https://doc.qt.io/qt-6/gettingstarted.html) All Modules =========== Qt Essentials[](https://doc.qt.io/qt-6/qtmodules.html#qt-essentials "Direct link to this headline") ---------------------------------------------------------------------------------------------------- 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 6. 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. * ### Qt Core Core non-graphical classes used by other modules. [](https://doc.qt.io/qt-6/qtcore-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt D-Bus Classes for inter-process communication over the D-Bus protocol. [](https://doc.qt.io/qt-6/qtdbus-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt GUI Base classes for graphical user interface (GUI) components. [](https://doc.qt.io/qt-6/qtgui-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Network Classes to make network programming easier and more portable. [](https://doc.qt.io/qt-6/qtnetwork-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Qml Classes for QML and JavaScript languages. [](https://doc.qt.io/qt-6/qtqml-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick A declarative framework for building highly dynamic applications with custom UIs. [](https://doc.qt.io/qt-6/qtquick-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Controls Lightweight QML types for creating performant user interfaces for desktop, embedded, and mobile devices. [](https://doc.qt.io/qt-6/qtquickcontrols-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Dialogs Types for creating and interacting with system dialogs from a Qt Quick application. [](https://doc.qt.io/qt-6/qtquickdialogs-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Layouts Layouts are items that are used to arrange Qt Quick 2 based items in the user interface. [](https://doc.qt.io/qt-6/qtquicklayouts-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Test A unit test framework for QML applications, where the test cases are written as JavaScript functions. [](https://doc.qt.io/qt-6/qtquicktest-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Test Classes for unit testing Qt applications and libraries. [](https://doc.qt.io/qt-6/qttest-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Widgets Classes to extend Qt GUI with C++ widgets. [](https://doc.qt.io/qt-6/qtwidgets-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) **Note:** The binary compatibility guarantee does not apply to [Qt Test](https://doc.qt.io/qt-6/qttest-index.html) and [Qt Quick Test](https://doc.qt.io/qt-6/qtquicktest-index.html) modules. However, they will remain source compatible. Qt Add-Ons[](https://doc.qt.io/qt-6/qtmodules.html#qt-add-ons "Direct link to this headline") ---------------------------------------------------------------------------------------------- _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 [Getting Started with Qt](https://doc.qt.io/qt-6/gettingstarted.html) page. * ### Active Qt Classes for applications which use ActiveX and COM (Windows only). [](https://doc.qt.io/qt-6/activeqt-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Bluetooth Provides access to Bluetooth hardware. [](https://doc.qt.io/qt-6/qtbluetooth-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt CoAP Implements the client side of CoAP defined by RFC 7252. [](https://doc.qt.io/qt-6/qtcoap-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Concurrent Classes for writing multi-threaded programs without using low-level threading primitives. [](https://doc.qt.io/qt-6/qtconcurrent-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Graphs Provides functionality for visualizing data in 3D as bar, scatter, and surface graphs, as well as 2D in area, bar, donut, line, pie, scatter, and spline graphs. [](https://doc.qt.io/qt-6/qtgraphs-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt GRPC Provides an ability to generate Qt-based classes from protobuf specifications used to communicate with gRPC® services. [](https://doc.qt.io/qt-6/qtgrpc-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Help Classes for integrating documentation into applications. [](https://doc.qt.io/qt-6/qthelp-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt HTTP Server A framework for embedding an HTTP server into a Qt application. [](https://doc.qt.io/qt-6/qthttpserver-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Image Formats Plugins for additional image formats: TIFF, MNG, TGA, WBMP. [](https://doc.qt.io/qt-6/qtimageformats-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Lottie Animation A QML API for rendering graphics and animations in JSON format, exported by the Bodymovin plugin for Adobe® After Effects. [](https://doc.qt.io/qt-6/qtlottieanimation-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt MQTT Provides an implementation of the MQTT protocol specification. [](https://doc.qt.io/qt-6/qtmqtt-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Multimedia A rich set of QML types and C++ classes to handle multimedia content. Also includes APIs to handle camera access. [](https://doc.qt.io/qt-6/qtmultimedia-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Network Authorization Provides support for OAuth-based authorization to online services. [](https://doc.qt.io/qt-6/qtnetworkauth-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt NFC Provides access to Near-Field communication (NFC) hardware. On desktop platforms NDEF access is only supported for Type 4 tags. [](https://doc.qt.io/qt-6/qtnfc-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt OPC UA Protocol for data modeling and exchange of data in industrial applications. [](https://doc.qt.io/qt-6/qtopcua-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt OpenGL C++ classes that make it easy to use OpenGL in Qt applications. A separate library (Qt OpenGL Widgets) provides a widget for rendering OpenGL graphics. [](https://doc.qt.io/qt-6/qtopengl-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Positioning Provides access to position, satellite info and area monitoring classes. [](https://doc.qt.io/qt-6/qtpositioning-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Print Support Classes to make printing easier and more portable. [](https://doc.qt.io/qt-6/qtprintsupport-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Protobuf Provides an ability to generate Qt-based classes from protobuf specifications. [](https://doc.qt.io/qt-6/qtprotobuf-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick 3D Provides a high-level API for creating 3D content or UIs based on Qt Quick. [](https://doc.qt.io/qt-6/qtquick3d-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick 3D Physics Qt Quick 3D Physics provides a high-level QML module adding physical simulation capabilities to Qt Quick 3D. [](https://doc.qt.io/qt-6/qtquick3dphysics-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Widgets Provides a C++ widget class for displaying a Qt Quick user interface. [](https://doc.qt.io/qt-6/qtquickwidgets-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Effects Provides QML types for applying one or more simple graphical effects to Qt Quick items. [](https://doc.qt.io/qt-6/qtquick-effects-qmlmodule.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Particles Provides QML types for particle effects. [](https://doc.qt.io/qt-6/qtquick-particles-qmlmodule.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Quick Timeline Enables keyframe-based animations and parameterization. [](https://doc.qt.io/qt-6/qtquicktimeline-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Remote Objects Provides an easy to use mechanism for sharing a QObject's API (Properties/Signals/Slots) between processes or devices. [](https://doc.qt.io/qt-6/qtremoteobjects-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt SCXML Provides classes and tools for creating state machines from SCXML files and embedding them in applications. [](https://doc.qt.io/qt-6/qtscxml-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Sensors Provides access to sensor hardware on Android, iOS, and Windows platforms. [](https://doc.qt.io/qt-6/qtsensors-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Serial Bus Provides access to serial industrial bus interfaces. Currently, the module supports the CAN bus and Modbus protocols. [](https://doc.qt.io/qt-6/qtserialbus-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Serial Port Provides classes to interact with hardware and virtual serial ports. [](https://doc.qt.io/qt-6/qtserialport-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Shader Tools Provides tools for the cross-platform Qt shader pipeline. These enable processing graphics and compute shaders to make them usable for Qt Quick and other components in the Qt ecosystem. [](https://doc.qt.io/qt-6/qtshadertools-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Spatial Audio Provides support for spatial audio. Create sound scenes in 3D space containing different sound sources and room related properties such as reverb. [](https://doc.qt.io/qt-6/qtspatialaudio-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt SQL Classes for database integration using SQL. [](https://doc.qt.io/qt-6/qtsql-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt State Machine Provides classes for creating and executing state graphs. [](https://doc.qt.io/qt-6/qtstatemachine-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt SVG Classes for displaying the contents of SVG files. Supports a subset of the SVG 1.2 Tiny standard. A separate library (Qt SVG Widgets) provides support for rendering SVG files in a widget UI. [](https://doc.qt.io/qt-6/qtsvg-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt TextToSpeech Provides support for synthesizing speech from text and playing it as audio output. [](https://doc.qt.io/qt-6/qttexttospeech-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt UI Tools Classes for loading QWidget based forms created in Qt Widgets Designer dynamically, at runtime. [](https://doc.qt.io/qt-6/qtuitools-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Virtual Keyboard A framework for implementing different input methods as well as a QML virtual keyboard. Supports localized keyboard layouts and custom visual themes. [](https://doc.qt.io/qt-6/qtvirtualkeyboard-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt Wayland Compositor Provides a framework to develop a Wayland compositor on Linux and Boot to Qt targets. [](https://doc.qt.io/qt-6/qtwaylandcompositor-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt WebChannel Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients. [](https://doc.qt.io/qt-6/qtwebchannel-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt WebSockets Provides WebSocket communication compliant with RFC 6455. [](https://doc.qt.io/qt-6/qtwebsockets-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt WebView Displays web content in a QML application by using APIs native to the platform, without the need to include a full web browser stack. [](https://doc.qt.io/qt-6/qtwebview-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt XML Handling of XML in a Document Object Model (DOM) API. [](https://doc.qt.io/qt-6/qtxml-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt 5 Compatibility APIs: Graphical Effects Qt Graphical Effects module from Qt 5 provided for compatibility. [](https://doc.qt.io/qt-6/qtgraphicaleffects5-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt 5 Core Compatibility APIs Qt Core APIs that were in Qt 5 but not Qt 6. [](https://doc.qt.io/qt-6/qtcore5-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) Qt Add-Ons in Technical Preview[](https://doc.qt.io/qt-6/qtmodules.html#qt-add-ons-in-technical-preview "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------------------------- The following add-ons are still in development, but are available as technology previews: * ### Qt Location Provides QML and C++ interfaces to create location-aware applications. [](https://doc.qt.io/qt-6/qtlocation-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) Qt Extension Modules[](https://doc.qt.io/qt-6/qtmodules.html#qt-extension-modules "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ Qt Extension Modules bring additional functionality to Qt. They may be part of a given Qt release, but can deviate from the other Qt modules in terms of release schedule, platform support, the binaries Qt provides, commercial support, or compatibility promises. You can find specific details in the module documentation for each Extension Module. * ### Qt WebEngine Classes and functions for embedding web content in applications using the Chromium browser project. [](https://doc.qt.io/qt-6/qtwebengine-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) * ### Qt PDF Classes and functions for rendering PDF documents on desktop platforms. [](https://doc.qt.io/qt-6/qtpdf-index.html) [](https://doc.qt.io/qt-6/qtmodules.html#) Where to Go from Here[](https://doc.qt.io/qt-6/qtmodules.html#where-to-go-from-here "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- 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. * [Qt Overviews](https://doc.qt.io/qt-6/overviews-main.html) - list of topics about application development * [Examples and Tutorials](https://doc.qt.io/qt-6/qtexamplesandtutorials.html) - code samples and tutorials * [Qt Reference Pages](https://doc.qt.io/qt-6/reference-overview.html) - a listing of C++ and QML APIs * [Changes to Supported Modules](https://doc.qt.io/qt-6/whatsnew60.html#changes-to-supported-modules) - status of Qt 5 modules in Qt 6.0 [All Functions and Macros](https://doc.qt.io/qt-6/functions.html) [Getting Started](https://doc.qt.io/qt-6/gettingstarted.html) © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Widgets | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Widgets On this page Qt Widgets ========== The [Qt Widgets Module](https://doc.qt.io/qt-6/qtwidgets-module.html) provides a set of UI elements to create classic desktop-style user interfaces. See the [User Interfaces](https://doc.qt.io/qt-6/topics-ui.html) overview for more information on using widgets. Widgets[](https://doc.qt.io/qt-6/qtwidgets-index.html#widgets "Direct link to this headline") ---------------------------------------------------------------------------------------------- Widgets are the primary elements for creating user interfaces in Qt. [Widgets](https://doc.qt.io/qt-6/widget-classes.html#the-widget-classes) can display data and status information, receive user input, and provide a container for other widgets that should be grouped together. A widget that is not embedded in a parent widget is called a [window](https://doc.qt.io/qt-6/application-windows.html) . ![Parent widget containing various child widgets](https://doc.qt.io/qt-6/images/parent-child-widgets.png) The [QWidget](https://doc.qt.io/qt-6/qwidget.html) class provides the basic capability to render to the screen and to handle user input events. All UI elements that Qt provides are either subclasses of [QWidget](https://doc.qt.io/qt-6/qwidget.html) or are used in connection with a [QWidget](https://doc.qt.io/qt-6/qwidget.html) subclass. To create custom widgets, subclass [QWidget](https://doc.qt.io/qt-6/qwidget.html) or a suitable subclass and reimplement the virtual event handlers. * [Window and Dialog Widgets](https://doc.qt.io/qt-6/application-windows.html) * [Application Main Window](https://doc.qt.io/qt-6/mainwindow.html) * [Dialog Windows](https://doc.qt.io/qt-6/dialogs.html) * [Keyboard Focus in Widgets](https://doc.qt.io/qt-6/focus.html) Styles[](https://doc.qt.io/qt-6/qtwidgets-index.html#styles "Direct link to this headline") -------------------------------------------------------------------------------------------- [Styles](https://doc.qt.io/qt-6/style-reference.html) draw on behalf of widgets and encapsulate the look and feel of a GUI. Qt's built-in widgets use the [QStyle](https://doc.qt.io/qt-6/qstyle.html) class to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets. | | | | | --- | --- | --- | | ![Windows style tab widgets](https://doc.qt.io/qt-6/images/windowsvista-tabwidget.png) | ![Fusion desktop style tab widgets](https://doc.qt.io/qt-6/images/fusion-tabwidget.png) | ![macOS style tab widgets](https://doc.qt.io/qt-6/images/macos-tabwidget.png) | [Qt Style Sheets](https://doc.qt.io/qt-6/stylesheet.html) are a powerful mechanism that lets you customize the appearance of widgets, in addition to what is already possible by subclassing [QStyle](https://doc.qt.io/qt-6/qstyle.html) . Layouts[](https://doc.qt.io/qt-6/qtwidgets-index.html#layouts "Direct link to this headline") ---------------------------------------------------------------------------------------------- [Layouts](https://doc.qt.io/qt-6/layout.html) are an elegant and flexible way to automatically arrange child widgets within their container. Each widget reports its size requirements to the layout through the [sizeHint](https://doc.qt.io/qt-6/qwidget.html#sizeHint-prop) and [sizePolicy](https://doc.qt.io/qt-6/qwidget.html#sizePolicy-prop) properties, and the layout distributes the available space accordingly. | | | | --- | --- | | ![5-children layout](https://doc.qt.io/qt-6/images/qgridlayout-with-5-children.png) | ![6-children layout](https://doc.qt.io/qt-6/images/qformlayout-with-6-children.png) | [Qt Widgets Designer](https://doc.qt.io/qt-6/qtdesigner-manual.html) is a powerful tool for interactively creating and arranging widgets in layouts. Model/View Classes[](https://doc.qt.io/qt-6/qtwidgets-index.html#model-view-classes "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- The [model/view](https://doc.qt.io/qt-6/model-view-programming.html) architecture provides classes that manage the way data is presented to the user. Data-driven applications which use lists and tables are structured to separate the data and view using models, views, and delegates. ![File directory using a tree view](https://doc.qt.io/qt-6/images/fusion-treeview.png) Graphics View[](https://doc.qt.io/qt-6/qtwidgets-index.html#graphics-view "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- The [Graphics View Framework](https://doc.qt.io/qt-6/graphicsview.html) is for managing and interacting with a large number of custom-made 2D graphical items, and a view widget for visualizing the items, with support for zooming and rotation. ![Various shapes and graphics on a grid](https://doc.qt.io/qt-6/images/graphicsview-items.png) Using the Module[](https://doc.qt.io/qt-6/qtwidgets-index.html#using-the-module "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtwidgets-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Widgets) target\_link\_libraries(mytarget PRIVATE Qt6::Widgets) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtwidgets-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= widgets Articles and Guides[](https://doc.qt.io/qt-6/qtwidgets-index.html#articles-and-guides "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- * [Widgets Tutorial](https://doc.qt.io/qt-6/widgets-tutorial.html) * [Getting Started Programming with Qt Widgets](https://doc.qt.io/qt-6/widgets-getting-started.html) * [Qt Creator: Tutorial: Qt Widgets application](https://doc.qt.io/qtcreator/creator-writing-program.html) * [Model/View Tutorial](https://doc.qt.io/qt-6/modelview.html) Examples[](https://doc.qt.io/qt-6/qtwidgets-index.html#examples "Direct link to this headline") ------------------------------------------------------------------------------------------------ * [Qt Widgets Examples](https://doc.qt.io/qt-6/examples-widgets.html) * [Layout Examples](https://doc.qt.io/qt-6/layout.html#layout-examples) * [Tools Examples](https://doc.qt.io/qt-6/examples-widgets-tools.html) API Reference[](https://doc.qt.io/qt-6/qtwidgets-index.html#api-reference "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- * [Qt Widgets C++ Classes](https://doc.qt.io/qt-6/qtwidgets-module.html) * [Basic Widget Classes](https://doc.qt.io/qt-6/widget-classes.html#basic-widget-classes) * [Advanced Widget Classes](https://doc.qt.io/qt-6/widget-classes.html#advanced-widget-classes) * [Abstract Widget Classes](https://doc.qt.io/qt-6/widget-classes.html#abstract-widget-classes) * [Organizer Widget Classes](https://doc.qt.io/qt-6/widget-classes.html#organizer-widget-classes) * [Graphics View Classes](https://doc.qt.io/qt-6/widget-classes.html#graphics-view-classes) * [Model/View Classes](https://doc.qt.io/qt-6/model-view-programming.html#the-model-view-classes) * [Main Window and Related Classes](https://doc.qt.io/qt-6/widget-classes.html#main-window-and-related-classes) * [Widget Appearance and Style Related Classes](https://doc.qt.io/qt-6/widget-classes.html#widget-appearance-and-style-related-classes) * [Layout Classes](https://doc.qt.io/qt-6/widget-classes.html#layout-classes) * [Qt Style Sheets Reference](https://doc.qt.io/qt-6/stylesheet-reference.html) Module Evolution[](https://doc.qt.io/qt-6/qtwidgets-index.html#module-evolution "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- [Changes to Qt Widgets](https://doc.qt.io/qt-6/widgets-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses[](https://doc.qt.io/qt-6/qtwidgets-index.html#licenses "Direct link to this headline") ------------------------------------------------------------------------------------------------ The Qt Widgets module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Quick | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Quick On this page Qt Quick ======== The Qt Quick module is the standard library for writing QML applications. While the [Qt Qml](https://doc.qt.io/qt-6/qtqml-index.html) module provides the QML engine and language infrastructure, the Qt Quick module provides all the basic types necessary for creating user interfaces with QML. It provides a visual canvas and includes types for creating and animating visual components, receiving user input, creating data models and views and delayed object instantiation. The Qt Quick module provides both a [QML API](https://doc.qt.io/qt-6/qtquick-qmlmodule.html) , which supplies QML types for creating user interfaces with the QML language, and a [C++ API](https://doc.qt.io/qt-6/qtquick-module.html) for extending QML applications with C++ code. **Note:** A set of Qt Quick-based UI controls is also available to create user interfaces. See [Qt Quick Controls](https://doc.qt.io/qt-6/qtquickcontrols-index.html) for more information. If you're new to QML and Qt Quick, please see [QML Applications](https://doc.qt.io/qt-6/qmlapplications.html) for an introduction to writing QML applications. Using the Module[](https://doc.qt.io/qt-6/qtquick-index.html#using-the-module "Direct link to this headline") -------------------------------------------------------------------------------------------------------------- ### QML API[](https://doc.qt.io/qt-6/qtquick-index.html#qml-api "Direct link to this headline") The QML types of the module are available through the `QtQuick` import. To use the types, add the following import statement to your .qml file: import QtQuick ### C++ API[](https://doc.qt.io/qt-6/qtquick-index.html#c-api "Direct link to this headline") Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . #### Building with CMake[](https://doc.qt.io/qt-6/qtquick-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Quick) target\_link\_libraries(mytarget PRIVATE Qt6::Quick) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. #### Building with qmake[](https://doc.qt.io/qt-6/qtquick-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= quick Important Concepts in Qt Quick[](https://doc.qt.io/qt-6/qtquick-index.html#important-concepts-in-qt-quick "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------------------ Qt Quick provides everything you need to create a rich application with a fluid and dynamic user interface. It enables you to build user interfaces around the behavior of user interface components and how they connect with one another, and it provides a visual canvas with its own coordinate system and rendering engine. Animation and transition effects are first class concepts in Qt Quick, and you can add visual effects through specialized components for particle and shader effects. * [The Visual Canvas](https://doc.qt.io/qt-6/qtquick-visualcanvas-topic.html) * [User Input](https://doc.qt.io/qt-6/qtquick-input-topic.html) * [Positioning](https://doc.qt.io/qt-6/qtquick-positioning-topic.html) * [States, Transitions And Animations](https://doc.qt.io/qt-6/qtquick-statesanimations-topic.html) * [Data - Models, Views, and Data Storage](https://doc.qt.io/qt-6/qtquick-modelviewsdata-topic.html) * [Particles And Graphical Effects](https://doc.qt.io/qt-6/qtquick-effects-topic.html) * [MultiEffect](https://doc.qt.io/qt-6/qml-qtquick-effects-multieffect.html) * [Convenience Types](https://doc.qt.io/qt-6/qtquick-convenience-topic.html) When using the Qt Quick module, you will need to know how to write QML applications using the QML language. In particular, QML Basics and QML Essentials from the [QML Applications](https://doc.qt.io/qt-6/qmlapplications.html) page. To find out more about using the QML language, see the [Qt Qml](https://doc.qt.io/qt-6/qtqml-index.html) module documentation. C++ Extension Points[](https://doc.qt.io/qt-6/qtquick-index.html#c-extension-points "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- * [C++ Extension Points](https://doc.qt.io/qt-6/qtquick-cppextensionpoints.html) * [Creating User-Defined QQuickItem-Derived Types](https://doc.qt.io/qt-6/qtquick-cppextensionpoints.html#user-defined-qquickitem-derived-types) * [Scene Graph-Related Classes](https://doc.qt.io/qt-6/qtquick-cppextensionpoints.html#scene-graph-related-classes) * [Pixmap and Threaded Image Support](https://doc.qt.io/qt-6/qtquick-cppextensionpoints.html#pixmap-and-threaded-image-support) Articles and Guides[](https://doc.qt.io/qt-6/qtquick-index.html#articles-and-guides "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- * [Qt Quick Guidelines](https://doc.qt.io/qt-6/qtquick-bestpractices.html) * [Qt Quick Tools and Utilities](https://doc.qt.io/qt-6/qtquick-tools-and-utilities.html) Further information for writing QML applications: * [QML Applications](https://doc.qt.io/qt-6/qmlapplications.html) - essential information for application development with QML and Qt Quick * [Qt Qml](https://doc.qt.io/qt-6/qtqml-index.html) - documentation for the Qt Qml module, which provides the QML engine and language infrastructure * [Qt Quick How-tos](https://doc.qt.io/qt-6/qtquick-how-tos.html) - shows how to achieve specific tasks in Qt Quick Examples[](https://doc.qt.io/qt-6/qtquick-index.html#examples "Direct link to this headline") ---------------------------------------------------------------------------------------------- * [Qt Quick Examples and Tutorials](https://doc.qt.io/qt-6/qtquick-codesamples.html) Reference[](https://doc.qt.io/qt-6/qtquick-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------ * [Qt Quick C++ Classes](https://doc.qt.io/qt-6/qtquick-module.html) - the C++ API provided by the Qt Quick module * [Qt Quick QML Types](https://doc.qt.io/qt-6/qtquick-qmlmodule.html) - a list of QML types provided by the `QtQuick` import * [Effects](https://doc.qt.io/qt-6/qtquick-effects-qmlmodule.html) - provides graphical effects to apply to Qt Quick items * [Local Storage](https://doc.qt.io/qt-6/qtquick-localstorage-qmlmodule.html) - a submodule containing a JavaScript interface for an SQLite database * [Particles](https://doc.qt.io/qt-6/qtquick-particles-qmlmodule.html) - provides a particle system for Qt Quick * [Layouts](https://doc.qt.io/qt-6/qtquicklayouts-index.html) - provides layouts for arranging Qt Quick items * [Tests](https://doc.qt.io/qt-6/qttest-qmlmodule.html) - contains types for writing unit test for a QML application * [Shapes](https://doc.qt.io/qt-6/qtquick-shapes-qmlmodule.html) - provides types for rendering vector shapes in a Qt Quick scene. * [Vector Image](https://doc.qt.io/qt-6/qtquick-vectorimage-qmlmodule.html) - provides types for displaying vector image files. * [Qt Quick Android Classes](https://doc.qt.io/qt-6/qtquick-android-classes.html) - provides classes for using QML with Java/Kotlin Android APIs. Qt Academy Courses[](https://doc.qt.io/qt-6/qtquick-index.html#qt-academy-courses "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ * [Introduction to Qt Quick](https://www.qt.io/academy/course-catalog#introduction-to-qt-quick) Licenses and Attributions[](https://doc.qt.io/qt-6/qtquick-index.html#licenses-and-attributions "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------- Qt Quick is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore Qt Quick in Qt 6.10.1 may contain third party modules under following permissive licenses: | | | | --- | --- | | [Yoga, version 2.0.1](https://doc.qt.io/qt-6/qtquick-attribution-yoga.html) | MIT License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Concurrent | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Concurrent On this page Qt Concurrent ============= The Qt Concurrent module provides high-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives such as mutexes, read-write locks, wait conditions, or semaphores. Programs written with Qt Concurrent automatically adjust the number of threads used according to the number of processor cores available. This means that applications written today will continue to scale when deployed on multi-core systems in the future. Qt Concurrent includes functional programming style APIs for parallel list processing, including a MapReduce and FilterReduce implementation for shared-memory (non-distributed) systems, and classes for managing asynchronous computations in GUI applications: * [Concurrent Map and Map-Reduce](https://doc.qt.io/qt-6/qtconcurrentmap.html) * [QtConcurrent::map](https://doc.qt.io/qt-6/qtconcurrent.html#map) () applies a function to every item in a container, modifying the items in-place. * [QtConcurrent::mapped](https://doc.qt.io/qt-6/qtconcurrent.html#mapped) () is like map(), except that it returns a new container with the modifications. * [QtConcurrent::mappedReduced](https://doc.qt.io/qt-6/qtconcurrent.html#mappedReduced) () is like mapped(), except that the modified results are reduced or folded into a single result. * [Concurrent Filter and Filter-Reduce](https://doc.qt.io/qt-6/qtconcurrentfilter.html) * [QtConcurrent::filter](https://doc.qt.io/qt-6/qtconcurrent.html#filter) () removes all items from a container based on the result of a filter function. * [QtConcurrent::filtered](https://doc.qt.io/qt-6/qtconcurrent.html#filtered) () is like filter(), except that it returns a new container with the filtered results. * [QtConcurrent::filteredReduced](https://doc.qt.io/qt-6/qtconcurrent.html#filteredReduced) () is like filtered(), except that the filtered results are reduced or folded into a single result. * [Concurrent Run](https://doc.qt.io/qt-6/qtconcurrentrun.html) * [QtConcurrent::run](https://doc.qt.io/qt-6/qtconcurrent.html#run) () runs a function in another thread. * [Concurrent Task](https://doc.qt.io/qt-6/qtconcurrenttask.html) * [QtConcurrent::task](https://doc.qt.io/qt-6/qtconcurrent.html#task) () creates an instance of [QtConcurrent::QTaskBuilder](https://doc.qt.io/qt-6/qtconcurrent-qtaskbuilder.html) . This object can be used for adjusting parameters and for kicking off a task in a separate thread. * [QFuture](https://doc.qt.io/qt-6/qfuture.html) represents the result of an asynchronous computation. * [QFutureIterator](https://doc.qt.io/qt-6/qfutureiterator.html) allows iterating through results available via [QFuture](https://doc.qt.io/qt-6/qfuture.html) . * [QFutureWatcher](https://doc.qt.io/qt-6/qfuturewatcher.html) allows monitoring a [QFuture](https://doc.qt.io/qt-6/qfuture.html) using signals-and-slots. * [QFutureSynchronizer](https://doc.qt.io/qt-6/qfuturesynchronizer.html) is a convenience class that automatically synchronizes several QFutures. * [QPromise](https://doc.qt.io/qt-6/qpromise.html) provides a way to report progress and results of the asynchronous computation to [QFuture](https://doc.qt.io/qt-6/qfuture.html) . Allows suspending or canceling the task when requested by [QFuture](https://doc.qt.io/qt-6/qfuture.html) . Qt Concurrent supports several STL-compatible container and iterator types, but works best with Qt containers that have random-access iterators, such as [QList](https://doc.qt.io/qt-6/qlist.html) . The map and filter functions accept both containers and begin/end iterators. STL Iterator support overview: | Iterator Type | Example classes | Support status | | --- | --- | --- | | Input Iterator | | Not Supported | | Output Iterator | | Not Supported | | Forward Iterator | std::forward\_list | Supported | | Bidirectional Iterator | std::list | Supported | | Random Access Iterator | [QList](https://doc.qt.io/qt-6/qlist.html)
, std::vector | Supported and Recommended | Random access iterators can be faster in cases where Qt Concurrent is iterating over a large number of lightweight items, since they allow skipping to any point in the container. In addition, using random access iterators allows Qt Concurrent to provide progress information through [QFuture::progressValue](https://doc.qt.io/qt-6/qfuture.html#progressValue) () and [QFutureWatcher::progressValueChanged](https://doc.qt.io/qt-6/qfuturewatcher.html#progressValueChanged) (). The non in-place modifying functions such as mapped() and filtered() makes a copy of the container when called. If you are using STL containers this copy operation might take some time, in this case we recommend specifying the begin and end iterators for the container instead. Using the Module[](https://doc.qt.io/qt-6/qtconcurrent-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- Using a Qt module requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtconcurrent-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Concurrent) target\_link\_libraries(mytarget PRIVATE Qt6::Concurrent) See also the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtconcurrent-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT += concurrent Examples[](https://doc.qt.io/qt-6/qtconcurrent-index.html#examples "Direct link to this headline") --------------------------------------------------------------------------------------------------- * [Qt Concurrent Examples](https://doc.qt.io/qt-6/qtconcurrentexamples.html) Module Evolution[](https://doc.qt.io/qt-6/qtconcurrent-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------- [Changes to Qt Concurrent](https://doc.qt.io/qt-6/concurrent-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses[](https://doc.qt.io/qt-6/qtconcurrent-index.html#licenses "Direct link to this headline") --------------------------------------------------------------------------------------------------- The Qt Concurrent module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Bluetooth | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Bluetooth On this page Qt Bluetooth ============ The Bluetooth API provides connectivity between Bluetooth enabled devices. Currently, the API is supported on the following platforms: | API Feature | [Android](https://doc.qt.io/qt-6/android.html) | [iOS](https://doc.qt.io/qt-6/ios.html) | [Linux (BlueZ 5.x)](https://doc.qt.io/qt-6/linux.html) | [macOS](https://doc.qt.io/qt-6/whatsnew68.html#macos) | [Windows](https://doc.qt.io/qt-6/windows.html) | | --- | --- | --- | --- | --- | --- | | Classic Bluetooth | x | | x | x | x | | Bluetooth LE Central | x | x | x | x | x | | Bluetooth LE Peripheral | x | x | x | x | | Overview[](https://doc.qt.io/qt-6/qtbluetooth-index.html#overview "Direct link to this headline") -------------------------------------------------------------------------------------------------- Bluetooth is a short-range (less than 100 meters) wireless technology. It has a data transfer rate of 2.1 Mbps, which makes it ideal for transferring data between devices. Bluetooth connectivity is based on basic device management, such as scanning for devices, gathering information about them, and exchanging data between them. Qt Bluetooth supports Bluetooth Low Energy development for client/central role use cases. Further details can be found in the [Bluetooth Low Energy Overview](https://doc.qt.io/qt-6/qtbluetooth-le-overview.html) section. Using the Module[](https://doc.qt.io/qt-6/qtbluetooth-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtbluetooth-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Bluetooth) target\_link\_libraries(mytarget PRIVATE Qt6::Bluetooth) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtbluetooth-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= bluetooth Permissions[](https://doc.qt.io/qt-6/qtbluetooth-index.html#permissions "Direct link to this headline") -------------------------------------------------------------------------------------------------------- Starting from Qt 6.6, the Qt Bluetooth module uses new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API to handle [Bluetooth](https://doc.qt.io/qt-6/qbluetoothpermission.html) permissions. This means that Qt itself no longer queries for these permissions, so this needs to be done directly from the client application. Please refer to the [Application Permissions](https://doc.qt.io/qt-6/permissions.html) page for an example of how to integrate the new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API into the application. Related Information[](https://doc.qt.io/qt-6/qtbluetooth-index.html#related-information "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------ ### Building Qt Bluetooth[](https://doc.qt.io/qt-6/qtbluetooth-index.html#building-qt-bluetooth "Direct link to this headline") Even though the module can be built for all Qt platforms, the module is not ported to all of them. Non-supported platforms employ a dummy backend that is automatically selected when the platform is not supported. The dummy backend reports appropriate error messages and values, which enables you to detect at runtime that the current platform is not supported. The dummy backend is also selected on Linux if BlueZ development headers are not found during build time or Qt was built without Qt D-Bus support. The usage of the dummy backend is highlighted via an appropriate warning while building and running. #### Linux Specific[](https://doc.qt.io/qt-6/qtbluetooth-index.html#linux-specific "Direct link to this headline") Since Qt 6.5 the Linux peripheral support has two backend alternatives: BlueZ DBus and Bluetooth Kernel API. The DBus backend is the default backend since Qt 6.7. BlueZ DBus is the newer BlueZ stack and possibly the eventual successor of the older Kernel API. It is a bit more limited in terms of features, but in a typical usage this should not matter. One notable benefit of using the DBus backend is that the user process no longer needs to have the _CAP\_NET\_ADMIN_ capability (for example by running as `root` user). The DBus backend requires BlueZ version 5.56 or higher, and that it provides the needed DBus APIs. If these requirements are not met, Qt automatically falls back to the Bluetooth Kernel API backend. The older kernel backend can also be selected manually by setting the _QT\_BLUETOOTH\_USE\_KERNEL\_PERIPHERAL_ environment variable. #### macOS Specific[](https://doc.qt.io/qt-6/qtbluetooth-index.html#macos-specific "Direct link to this headline") The Bluetooth API on macOS requires a certain type of event dispatcher that in Qt causes a dependency to [QGuiApplication](https://doc.qt.io/qt-6/qguiapplication.html) . However, you can set the environment variable `QT_EVENT_DISPATCHER_CORE_FOUNDATION=1` to circumvent this issue. Applications that don't use Classic Bluetooth will find a subset of [QtBluetooth](https://doc.qt.io/qt-6/qtbluetooth-module.html) is available, as CoreBluetooth (Bluetooth LE) don't require [QApplication](https://doc.qt.io/qt-6/qapplication.html) or [QGuiApplication](https://doc.qt.io/qt-6/qguiapplication.html) . ### Articles and Guides[](https://doc.qt.io/qt-6/qtbluetooth-index.html#articles-and-guides "Direct link to this headline") * [Classic Bluetooth Overview](https://doc.qt.io/qt-6/qtbluetooth-overview.html) * [Bluetooth Low Energy Overview](https://doc.qt.io/qt-6/qtbluetooth-le-overview.html) ### Reference[](https://doc.qt.io/qt-6/qtbluetooth-index.html#reference "Direct link to this headline") * [C++ Classes](https://doc.qt.io/qt-6/qtbluetooth-module.html) ### Logging Categories[](https://doc.qt.io/qt-6/qtbluetooth-index.html#logging-categories "Direct link to this headline") The [QtBluetooth](https://doc.qt.io/qt-6/qtbluetooth-module.html) module exports the following [logging categories](https://doc.qt.io/qt-6/qloggingcategory.html#configuring-categories) : | Logging Category | Description | | --- | --- | | qt.bluetooth | Enables logging of cross platform code path in [QtBluetooth](https://doc.qt.io/qt-6/qtbluetooth-module.html) | | qt.bluetooth.android | Enables logging of the [Android](https://doc.qt.io/qt-6/android.html)
implementation | | qt.bluetooth.bluez | Enables logging of the BLuez/Linux implementation | | qt.bluetooth.ios | Enables logging of the [iOS](https://doc.qt.io/qt-6/ios.html)
implementation | | qt.bluetooth.osx | Enables logging of the [macOS](https://doc.qt.io/qt-6/macos.html)
implementation | | qt.bluetooth.windows | Enables logging of the [Windows](https://doc.qt.io/qt-6/windows.html)
implementation | Logging categories enable additional warning and debug output for [QtBluetooth](https://doc.qt.io/qt-6/qtbluetooth-module.html) . More detailed information about logging is found in [QLoggingCategory](https://doc.qt.io/qt-6/qloggingcategory.html) . A quick way to enable all [QtBluetooth](https://doc.qt.io/qt-6/qtbluetooth-module.html) logging is to add the following line to the `main()` function: [QLoggingCategory](https://doc.qt.io/qt-6/qloggingcategory.html) ::setFilterRules(QStringLiteral("qt.bluetooth\* = true")); ### Examples[](https://doc.qt.io/qt-6/qtbluetooth-index.html#examples "Direct link to this headline") * QML * [Bluetooth Low Energy Heart Rate Game](https://doc.qt.io/qt-6/qtbluetooth-heartrate-game-example.html) * [Bluetooth Low Energy Heart Rate Server](https://doc.qt.io/qt-6/qtbluetooth-heartrate-server-example.html) * [Bluetooth Low Energy Scanner](https://doc.qt.io/qt-6/qtbluetooth-lowenergyscanner-example.html) * C++ * [Bluetooth Chat](https://doc.qt.io/qt-6/qtbluetooth-btchat-example.html) Module Evolution[](https://doc.qt.io/qt-6/qtbluetooth-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ [Changes to Qt Bluetooth](https://doc.qt.io/qt-6/qtbluetooth-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qtbluetooth-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------------ Qt Bluetooth is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. On Linux, Qt Bluetooth uses a separate executable, `sdpscanner`, to integrate with the official Linux bluetooth protocol stack BlueZ. BlueZ is available under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . | | | | --- | --- | | [BlueZ](https://doc.qt.io/qt-6/qtbluetooth-attribution-bluez.html) | GNU General Public License v2.0 only (This does not force user code to be GPL'ed. For more info see details.) | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt GUI | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt GUI On this page Qt GUI ====== The Qt GUI module provides classes for windowing system integration, event handling, OpenGL and OpenGL ES integration, 2D graphics, basic imaging, fonts, and text. These classes are used internally by Qt's user interface technologies but can also be used directly, for example to write applications using low-level OpenGL ES graphics APIs. For application developers writing user interfaces, Qt provides higher level APIs, like Qt Quick, that are much more suitable than the enablers found in the Qt GUI module. Using the Module[](https://doc.qt.io/qt-6/qtgui-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtgui-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Gui) target\_link\_libraries(mytarget PRIVATE Qt6::Gui) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtgui-index.html#building-with-qmake "Direct link to this headline") If you use [qmake](https://doc.qt.io/qt-6/qmake-manual.html) to build your projects, Qt GUI is included by default. To disable Qt GUI, add the following line to your `.pro` file: QT -= gui Articles and Guides[](https://doc.qt.io/qt-6/qtgui-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ * [Qt GUI Overview](https://doc.qt.io/qt-6/qtgui-overview.html) * [Qt GUI Application Windows](https://doc.qt.io/qt-6/qtgui-overview.html#application-windows) * [Qt GUI 2D Graphics](https://doc.qt.io/qt-6/qtgui-overview.html#2d-graphics) * [Qt GUI Accelerated 2D and 3D Graphics using the Qt RHI](https://doc.qt.io/qt-6/qtgui-overview.html#rhi-graphics) * [Qt GUI Matrix and Vector Math](https://doc.qt.io/qt-6/qtgui-overview.html#3d-matrix-and-vector-math) * [Qt GUI OpenGL and OpenGL ES Integration](https://doc.qt.io/qt-6/qtgui-overview.html#opengl-and-opengl-es-integration) * [Qt GUI Vulkan Integration](https://doc.qt.io/qt-6/qtgui-overview.html#vulkan-integration) Reference[](https://doc.qt.io/qt-6/qtgui-index.html#reference "Direct link to this headline") ---------------------------------------------------------------------------------------------- * [Qt GUI C++ Classes](https://doc.qt.io/qt-6/qtgui-module.html) * [Event Classes](https://doc.qt.io/qt-6/events.html) * [Painting Classes](https://doc.qt.io/qt-6/painting.html) * [Rendering in 3D](https://doc.qt.io/qt-6/painting-3d.html) Module Evolution[](https://doc.qt.io/qt-6/qtgui-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ [Changes to Qt GUI](https://doc.qt.io/qt-6/gui-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qtgui-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------ Qt GUI is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt GUI in Qt 6.10.1 may contain third-party modules under following permissive licenses: | | | | --- | --- | | [Adobe Glyph List For New Fonts, version 1.7](https://doc.qt.io/qt-6/qtgui-attribution-aglfn.html) | BSD 3-Clause "New" or "Revised" License | | [Anti-aliasing rasterizer from FreeType 2](https://doc.qt.io/qt-6/qtgui-attribution-grayraster.html) | Freetype Project License or GNU General Public License v2.0 only | | [Cocoa Platform Plugin](https://doc.qt.io/qt-6/qtgui-attribution-cocoa-platform-plugin.html) | BSD 3-clause "New" or "Revised" License | | [D3D12 Memory Allocator, version f128d39b7a95b4235bd228d231646278dc6c24b2](https://doc.qt.io/qt-6/qtgui-attribution-d3d12memoryallocator.html) | MIT License | | [DejaVu Fonts, version 2.37](https://doc.qt.io/qt-6/qtgui-attribution-dejayvu.html) | Bitstream Vera Font License | | [Emoji Segmenter, version 0.4.0](https://doc.qt.io/qt-6/qtgui-attribution-emoji-segmenter.html) | Apache License 2.0 | | [Freetype 2 - Bitmap Distribution Format (BDF) support](https://doc.qt.io/qt-6/qtgui-attribution-freetype-bdf.html) | MIT License | | [Freetype 2 - Portable Compiled Format (PCF) support](https://doc.qt.io/qt-6/qtgui-attribution-freetype-pcf.html) | MIT License and MIT Open Group variant | | [Freetype 2 - zlib](https://doc.qt.io/qt-6/qtgui-attribution-freetype-zlib.html) | zlib License | | [Freetype 2, version 2.14.1](https://doc.qt.io/qt-6/qtgui-attribution-freetype.html) | Freetype Project License or GNU General Public License v2.0 only | | [HarfBuzz-NG, version 12.2.0](https://doc.qt.io/qt-6/qtgui-attribution-harfbuzz-ng.html) | MIT License | | [LibJPEG-turbo, version 3.1.2](https://doc.qt.io/qt-6/qtgui-attribution-libjpeg.html) | Independent JPEG Group License and BSD 3-Clause "New" or "Revised" License | | [LibPNG, version 1.6.50](https://doc.qt.io/qt-6/qtgui-attribution-libpng.html) | libpng License and PNG Reference Library version 2 | | [MD4C, version 0.5.2](https://doc.qt.io/qt-6/qtgui-attribution-md4c.html) | MIT License | | [Mipmap generator for D3D12, version 0aa79bad78992da0b6a8279ddb9002c1753cb849](https://doc.qt.io/qt-6/qtgui-attribution-rhi-miniengine-d3d12-mipmap.html) | MIT License | | [Native Style for Android](https://doc.qt.io/qt-6/qtgui-attribution-android-native-style.html) | Apache License 2.0 | | [OpenGL ES 2 Headers, version Revision 27673](https://doc.qt.io/qt-6/qtgui-attribution-opengl-es2-headers.html) | MIT License | | [OpenGL Headers, version Revision 27684](https://doc.qt.io/qt-6/qtgui-attribution-opengl-headers.html) | MIT License | | [Pixman, version 0.17.12](https://doc.qt.io/qt-6/qtgui-attribution-pixman.html) | MIT License | | [Smooth Scaling Algorithm](https://doc.qt.io/qt-6/qtgui-attribution-smooth-scaling-algorithm.html) | BSD 2-clause "Simplified" License and Imlib2 License | | [Vulkan API Registry, version 1.4.308](https://doc.qt.io/qt-6/qtgui-attribution-vulkan-xml-spec.html) | Apache License 2.0 or MIT License | | [Vulkan Memory Allocator, version 3.2.1](https://doc.qt.io/qt-6/qtgui-attribution-vulkanmemoryallocator.html) | MIT License | | [WebGradients](https://doc.qt.io/qt-6/qtgui-attribution-webgradients.html) | MIT License | | [Wintab API](https://doc.qt.io/qt-6/qtgui-attribution-wintab.html) | LCS-Telegraphics License | | [X Server helper](https://doc.qt.io/qt-6/qtgui-attribution-xserverhelper.html) | X11 License and Historical Permission Notice and Disclaimer | | [XCB-XInput](https://doc.qt.io/qt-6/qtgui-attribution-xcb-xinput.html) | MIT License | | [sRGB color profile icc file](https://doc.qt.io/qt-6/qtgui-attribution-icc-srgb-color-profile.html) | International Color Consortium License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Core | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Core On this page Qt Core ======= The Qt Core module adds these features to C++: * a very powerful mechanism for seamless object communication called signals and slots * queryable and designable object properties * hierarchical and queryable object trees that organize object ownership in a natural way with guarded pointers ([QPointer](https://doc.qt.io/qt-6/qpointer.html) ) * a dynamic cast that works across library boundaries The following pages provide more information about Qt's core features: * [The Meta-Object System](https://doc.qt.io/qt-6/metaobjects.html) * [The Property System](https://doc.qt.io/qt-6/properties.html) * [Object Model](https://doc.qt.io/qt-6/object.html) * [Object Trees & Ownership](https://doc.qt.io/qt-6/objecttrees.html) * [Signals & Slots](https://doc.qt.io/qt-6/signalsandslots.html) Using the Module[](https://doc.qt.io/qt-6/qtcore-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtcore-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Core) target\_link\_libraries(mytarget PRIVATE Qt6::Core) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtcore-index.html#building-with-qmake "Direct link to this headline") If you use [qmake](https://doc.qt.io/qt-6/qmake-manual.html) to build your projects, Qt Core is linked by default. Threading and Concurrent Programming[](https://doc.qt.io/qt-6/qtcore-index.html#threading-and-concurrent-programming "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------------------------------- Qt provides thread support in the form of platform-independent [threading classes](https://doc.qt.io/qt-6/thread.html) , a thread-safe way of posting events, and signal-slot connections across threads. Multithreaded programming is also a useful paradigm for performing time-consuming operations without freezing the user interface of an application. The [Multi-threading in Qt](https://doc.qt.io/qt-6/threads.html) page contains information on implementing threads in applications. Additional concurrent classes are provided by the [Qt Concurrent](https://doc.qt.io/qt-6/qtconcurrent-index.html) module. Input/Output, Resources, and Containers[](https://doc.qt.io/qt-6/qtcore-index.html#input-output-resources-and-containers "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------------------------------------------- Qt provides a resource system for organizing application files and assets, a set of containers, and classes for receiving input and printing output. * [Container Classes](https://doc.qt.io/qt-6/containers.html) * [Serializing Qt Data Types](https://doc.qt.io/qt-6/datastreamformat.html) * [Implicit Sharing](https://doc.qt.io/qt-6/implicit-sharing.html) In addition, Qt Core provides a platform-independent mechanism for storing binary files in the application's executable. * [The Qt Resource System](https://doc.qt.io/qt-6/resources.html) Additional Frameworks[](https://doc.qt.io/qt-6/qtcore-index.html#additional-frameworks "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------- Qt Core also provides some of Qt's key frameworks. * [The Animation Framework](https://doc.qt.io/qt-6/animation-overview.html) * [JSON Support in Qt](https://doc.qt.io/qt-6/json.html) * [CBOR Support in Qt](https://doc.qt.io/qt-6/cbor.html) * [Inter-Process Communication](https://doc.qt.io/qt-6/ipc.html) * [How to Create Qt Plugins](https://doc.qt.io/qt-6/plugins-howto.html) * [The Event System](https://doc.qt.io/qt-6/eventsandfilters.html) * [Application Permissions](https://doc.qt.io/qt-6/permissions.html) Reference[](https://doc.qt.io/qt-6/qtcore-index.html#reference "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtcore-module.html) * [Animation Classes](https://doc.qt.io/qt-6/animation.html) * [Threading Classes](https://doc.qt.io/qt-6/thread.html) * [Container Classes](https://doc.qt.io/qt-6/containers.html) * [Plugin Classes](https://doc.qt.io/qt-6/plugins.html) * [Implicitly Shared Classes](https://doc.qt.io/qt-6/shared.html) * [Input/Output Classes](https://doc.qt.io/qt-6/io.html) * [Event Classes](https://doc.qt.io/qt-6/events.html) * CMake API * [CMake Commands](https://doc.qt.io/qt-6/cmake-commands-qtcore.html) * [CMake Variables](https://doc.qt.io/qt-6/cmake-variables-qtcore.html) * [CMake Target Properties](https://doc.qt.io/qt-6/cmake-target-properties-qtcore.html) Module Evolution[](https://doc.qt.io/qt-6/qtcore-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------- [Changes to Qt Core](https://doc.qt.io/qt-6/qtcore-changes-qt6.html) lists important changes in the module API and functionality that were made for the Qt 6 series of Qt. Licenses and Attributions[](https://doc.qt.io/qt-6/qtcore-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- Qt Core is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Executables on Windows potentially link against [The QtEntryPoint Library](https://doc.qt.io/qt-6/qtentrypoint.html) . This library is available under commercial licenses and also under the [BSD 3-clause "New" or "Revised" License](https://spdx.org/licenses/BSD-3-Clause.html) . Furthermore, Qt Core in Qt 6.10.1 may contain third party modules under the following permissive licenses: | | | | --- | --- | | [Apache Tika MimeType Definitions, version dbcbb368e0a913e1a74cca61347fd6ce24bc6d7e](https://doc.qt.io/qt-6/qtcore-attribution-tika-mimetypes.html) | Apache License 2.0 | | [BLAKE2 (reference implementation), version ed1974ea83433eba7b2d95c5dcd9ac33cb847913](https://doc.qt.io/qt-6/qtcore-attribution-blake2.html) | Creative Commons Zero v1.0 Universal or Apache License 2.0 | | [Data Compression Library (zlib), version 1.3.1](https://doc.qt.io/qt-6/qtcore-attribution-zlib.html) | zlib License | | [Easing Equations by Robert Penner](https://doc.qt.io/qt-6/qtcore-attribution-easing.html) | BSD 3-clause "New" or "Revised" License | | [Efficient Binary-Decimal and Decimal-Binary Conversion Routines for IEEE Doubles, version 3.3.1](https://doc.qt.io/qt-6/qtcore-attribution-doubleconversion.html) | BSD 3-clause "New" or "Revised" License | | [MD4](https://doc.qt.io/qt-6/qtcore-attribution-md4.html) | Public Domain | | [MD5](https://doc.qt.io/qt-6/qtcore-attribution-md5.html) | Public Domain | | [PCRE2 - Stack-less Just-In-Time Compiler, version 10.47](https://doc.qt.io/qt-6/qtcore-attribution-pcre2-sljit.html) | BSD 2-clause "Simplified" License | | [PCRE2, version 10.47](https://doc.qt.io/qt-6/qtcore-attribution-pcre2.html) | BSD 3-clause "New" or "Revised" License with PCRE2 binary-like Packages Exception | | [QEventDispatcher on macOS](https://doc.qt.io/qt-6/qtcore-attribution-qeventdispatcher-cf.html) | BSD 3-clause "New" or "Revised" License | | [Secure Hash Algorithm SHA-1](https://doc.qt.io/qt-6/qtcore-attribution-sha1.html) | Public Domain | | [Secure Hash Algorithm SHA-3 - Keccak, version 3.2](https://doc.qt.io/qt-6/qtcore-attribution-sha3-keccak.html) | Creative Commons Zero v1.0 Universal | | [Secure Hash Algorithm SHA-3 - brg\_endian, version 4b9e13ead2c5b5e41ca27c65de4dd69ae0bac228](https://doc.qt.io/qt-6/qtcore-attribution-sha3-endian.html) | BSD 2-clause "Simplified" License | | [Secure Hash Algorithms SHA-384 and SHA-512](https://doc.qt.io/qt-6/qtcore-attribution-rfc6234.html) | BSD 3-clause "New" or "Revised" License | | [SipHash Algorithm](https://doc.qt.io/qt-6/qtcore-attribution-siphash.html) | Creative Commons Zero v1.0 Universal | | [TinyCBOR, version 0.6.1](https://doc.qt.io/qt-6/qtcore-attribution-tinycbor.html) | MIT License | | [Unicode Character Database (UCD), version 34](https://doc.qt.io/qt-6/qtcore-attribution-unicode-character-database.html) | Unicode License Agreement - Data Files and Software (2016) | | [Unicode Common Locale Data Repository (CLDR), version v47](https://doc.qt.io/qt-6/qtcore-attribution-unicode-cldr.html) | Unicode License v3 | | [forkfd](https://doc.qt.io/qt-6/qtcore-attribution-forkfd.html) | MIT License | | [tl::expected, version 41d3e1f48d682992a2230b2a715bca38b848b269](https://doc.qt.io/qt-6/qtcore-attribution-tlexpected.html) | Creative Commons Zero v1.0 Universal | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt NFC | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt NFC On this page Qt NFC ====== The NFC API provides connectivity between NFC enabled devices. Currently, the API is supported on [Android](https://doc.qt.io/qt-6/android.html) , [iOS](https://doc.qt.io/qt-6/ios.html) and [Linux](https://doc.qt.io/qt-6/linux.html) using [Neard](https://github.com/linux-nfc/neard) v0.14 or later. This module also provides limited access to readers supporting [PC/SC](https://doc.qt.io/qt-6/qtnfc-pcsc.html) specification on Linux, macOS, and Windows. NFC is a short-range (less than 20 centimeters) wireless technology with a maximum transfer rate of 424 Kbps. NFC is ideal for transferring small packets of data when two devices are placed together. The NFC module provides APIs for interacting with NFC Forum Tags and NFC Forum Devices. It can detect targets and losses, register NDEF message handlers, read and write NDEF messages on NFC Forum Tags, and send tag-specific commands. Using the Module[](https://doc.qt.io/qt-6/qtnfc-index.html#using-the-module "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtnfc-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Nfc) target\_link\_libraries(mytarget PRIVATE Qt6::Nfc) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtnfc-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= nfc Articles and Guides[](https://doc.qt.io/qt-6/qtnfc-index.html#articles-and-guides "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ * [Qt NFC Overview](https://doc.qt.io/qt-6/qtnfc-overview.html) * [Supported NFC Features](https://doc.qt.io/qt-6/qtnfc-features.html) * [Qt NFC on Android](https://doc.qt.io/qt-6/nfc-android.html) * [PC/SC in Qt NFC](https://doc.qt.io/qt-6/qtnfc-pcsc.html) Logging Categories[](https://doc.qt.io/qt-6/qtnfc-index.html#logging-categories "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- The [QtNfc](https://doc.qt.io/qt-6/qtnfc-module.html) module exports the following [logging categories](https://doc.qt.io/qt-6/qloggingcategory.html#configuring-categories) : | Logging Category | Description | | --- | --- | | qt.nfc.neard | Enables logging of the Neard/Linux implementation | Examples[](https://doc.qt.io/qt-6/qtnfc-index.html#examples "Direct link to this headline") -------------------------------------------------------------------------------------------- * [Annotated URL](https://doc.qt.io/qt-6/qtnfc-annotatedurl-example.html) * [NDEF Editor](https://doc.qt.io/qt-6/qtnfc-attribution-ndefeditor.html#ndefeditor) Reference[](https://doc.qt.io/qt-6/qtnfc-index.html#reference "Direct link to this headline") ---------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtnfc-module.html) Module Evolution[](https://doc.qt.io/qt-6/qtnfc-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ [Changes to Qt NFC](https://doc.qt.io/qt-6/qtnfc-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses[](https://doc.qt.io/qt-6/qtnfc-index.html#licenses "Direct link to this headline") -------------------------------------------------------------------------------------------- Qt NFC is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt OPC UA | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt OPC UA On this page Qt OPC UA ========= The [Qt OPC UA](https://doc.qt.io/qt-6/qtopcua-overview.html) module implements a Qt API to interact with OPC UA servers on top of the [open62541](https://www.open62541.org/) library. The QML API has been marked as deprecated in Qt 6.9 and will be removed in a future version. Using the Module[](https://doc.qt.io/qt-6/qtopcua-index.html#using-the-module "Direct link to this headline") -------------------------------------------------------------------------------------------------------------- ### QML API[](https://doc.qt.io/qt-6/qtopcua-index.html#qml-api "Direct link to this headline") The [QML types](https://doc.qt.io/qt-6/qtopcua-qmlmodule.html) are available through the `QtOpcUa` import. To use the types, add the following import statement to your .qml file: import QtOpcUa as QtOpcUa ### C++ API[](https://doc.qt.io/qt-6/qtopcua-index.html#c-api "Direct link to this headline") Using the [C++ API](https://doc.qt.io/qt-6/qtopcua-module.html) requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake. #### Building with CMake[](https://doc.qt.io/qt-6/qtopcua-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module components in the Qt6 package: find\_package(Qt6 REQUIRED COMPONENTS OpcUa) target\_link\_libraries(mytarget Qt::OpcUa) #### Building with qmake[](https://doc.qt.io/qt-6/qtopcua-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the QT variable in the project's .pro file: QT += opcua Articles and Guides[](https://doc.qt.io/qt-6/qtopcua-index.html#articles-and-guides "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- * [Overview](https://doc.qt.io/qt-6/qtopcua-overview.html) * [Using the OpenSSL Dependency for Security Support and GDS](https://doc.qt.io/qt-6/qtopcua-build-openssl.html) * [Building Qt OPC UA Open62541 Plugin](https://doc.qt.io/qt-6/qtopcua-build-open62541.html) * [The Qt OPC UA data type generator](https://doc.qt.io/qt-6/qopcuaxmldatatypes2cpp.html) * [OPC UA at the OPC foundation](https://opcfoundation.org/about/opc-technologies/opc-ua/) Examples[](https://doc.qt.io/qt-6/qtopcua-index.html#examples "Direct link to this headline") ---------------------------------------------------------------------------------------------- * [Examples](https://doc.qt.io/qt-6/qtopcua-examples.html) Reference[](https://doc.qt.io/qt-6/qtopcua-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------ * [C++ Classes](https://doc.qt.io/qt-6/qtopcua-module.html) * [QML Types](https://doc.qt.io/qt-6/qtopcua-qmlmodule.html) Licenses and Attributions[](https://doc.qt.io/qt-6/qtopcua-index.html#licenses-and-attributions "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------- Qt OPC UA is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt OPC UA in Qt 6.10.1 may contain third-party modules under following permissive licenses: | | | | --- | --- | | [Open62541, version 1.4.13](https://doc.qt.io/qt-6/qtopcua-attribution-open62541.html) | Mozilla Public License 2.0 and Creative Commons Zero v1.0 Universal and Creative Commons Attribution Share Alike 4.0 International and BSD 3-Clause "New" or "Revised" License and Apache License 2.0 and MIT License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # What's New in Qt 6.10 | Qt 6.10 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * [What's new in Qt 6](https://doc.qt.io/qt-6/whatsnewqt6.html) * What's New in Qt 6.10 On this page What's New in Qt 6.10 ===================== New and Restored Modules in Qt 6.10[](https://doc.qt.io/qt-6/whatsnew610.html#new-and-restored-modules-in-qt-6-10 "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------------------- Qt 6.10 adds the following modules and tools: New Features in Qt 6.10[](https://doc.qt.io/qt-6/whatsnew610.html#new-features-in-qt-6-10 "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------- ### Qt Core Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-core-module "Direct link to this headline") * [QLocale](https://doc.qt.io/qt-6/qlocale.html) is now updated to CLDR v47 * [QLocale::uiLanguages](https://doc.qt.io/qt-6/qlocale.html#uiLanguages) () now includes truncated entries and is better-ordered * [QLocale::toString](https://doc.qt.io/qt-6/qlocale.html#toString) () overloads for integral type now accept precision and width * The system locale is now distinguished in [qDebug](https://doc.qt.io/qt-6/qdebug.html#qDebug) () output from the CLDR-derived one for the same language, script and territory * [QLocale::toString](https://doc.qt.io/qt-6/qlocale.html#toString) (double, ...)'s exponent separator now again matches the case requested * [QCalendar::daysInMonth](https://doc.qt.io/qt-6/qcalendar.html#daysInMonth) () for unspecified year now gives the maximal value * The new [QRangeModel](https://doc.qt.io/qt-6/qrangemodel.html) class provides an implementation of [QAbstractItemModel](https://doc.qt.io/qt-6/qabstractitemmodel.html) that can operate on any C++ range. * [QXmlStreamReader::readRawInnerData](https://doc.qt.io/qt-6/qxmlstreamreader.html#readRawInnerData) () for retrieving the raw inner XML content of an element. * Error handling API for [QXmlStreamWriter](https://doc.qt.io/qt-6/qxmlstreamwriter.html) with [Error](https://doc.qt.io/qt-6/qxmlstreamwriter.html#Error-enum) enum, [error](https://doc.qt.io/qt-6/qxmlstreamwriter.html#error) (), [errorString](https://doc.qt.io/qt-6/qxmlstreamwriter.html#errorString) (), and [raiseError](https://doc.qt.io/qt-6/qxmlstreamwriter.html#raiseError) () functions. * [QXmlStreamWriter::stopWritingOnError](https://doc.qt.io/qt-6/qxmlstreamwriter.html#stopWritingOnError-prop) () property, allowing users to control whether output halts immediately after encountering an error. * Added [QFuture::cancelChain](https://doc.qt.io/qt-6/qfuture.html#cancelChain) () to cancel the entire continuation chain using any non-finished [QFuture](https://doc.qt.io/qt-6/qfuture.html) from the chain. * The new [qEnvironmentVariableIntegerValue](https://doc.qt.io/qt-6/qtenvironmentvariables.html#qEnvironmentVariableIntegerValue) returns the numerical value of an environment variable, or `std::nullopt` if the variable is not set or doesn't hold an integer. * [QFileInfo::isOther](https://doc.qt.io/qt-6/qfileinfo.html#isOther) () returns true for file system entries that are neither a directory, regular file, or symbolic link. * Added [QSortFilterProxyModel::endFilterChange](https://doc.qt.io/qt-6/qsortfilterproxymodel.html#endFilterChange) () taking a [Direction](https://doc.qt.io/qt-6/qsortfilterproxymodel.html#Direction-enum) parameter, to balance a previous call to [endFilterChange](https://doc.qt.io/qt-6/qsortfilterproxymodel.html#endFilterChange) (). These APIs replace [invalidateFilter](https://doc.qt.io/qt-6/qsortfilterproxymodel.html#invalidateFilter) (), which will be deprecated starting from Qt 6.13. * Two new overloads of [QMetaObject::connect](https://doc.qt.io/qt-6/qmetaobject.html#connect) () make it possible to connect the [QMetaMethod](https://doc.qt.io/qt-6/qmetamethod.html) of a signal to a slot function or lambda. * [QCborValue::toStringView](https://doc.qt.io/qt-6/qcborvalue.html#toStringView) () and [QJsonValue::toStringView](https://doc.qt.io/qt-6/qjsonvalue.html#toStringView) () return a view of the string stored in the value, without any allocations. * Use [QDataStream::operator bool()](https://doc.qt.io/qt-6/qdatastream.html#operator-bool) and [QTextStream::operator bool()](https://doc.qt.io/qt-6/qtextstream.html#operator-bool) to check whether the stream is in an error state. * Use [nullTerminate](https://doc.qt.io/qt-6/qbytearray.html#nullTerminate) () to add a null terminator to a [QByteArray](https://doc.qt.io/qt-6/qbytearray.html) or [QString](https://doc.qt.io/qt-6/qstring.html) , e.g. after constructing them via [QByteArray::fromRawData](https://doc.qt.io/qt-6/qbytearray.html#fromRawData) (). Test whether the array or string is null terminated with isNullTerminated(). * [QByteArray](https://doc.qt.io/qt-6/qbytearray.html) can now implicitly convert to a std::string\_view. ### Qt DBus Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-dbus-module "Direct link to this headline") * [QDBusConnectionInterface::serviceCredentials](https://doc.qt.io/qt-6/qdbusconnectioninterface.html#serviceCredentials) () returns the connection credentials for the process currently holding the specified bus service. ### Qt Graphs Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-graphs-module "Direct link to this headline") * Filled surface graph type added: [DrawFilledSurface](https://doc.qt.io/qt-6/qsurface3dseries.html#DrawFlag-enum) * Text elide support for 2D axes added: [QAbstractAxis::textElideMode](https://doc.qt.io/qt-6/qabstractaxis.html#textElideMode-prop) * Pie slice label hiding support for small sized slices added: [QPieSeries::angleSpanVisibleLimit](https://doc.qt.io/qt-6/qpieseries.html#angleSpanVisibleLimit-prop) , [QPieSeries::angleSpanLabelVisibility](https://doc.qt.io/qt-6/qpieseries.html#angleSpanLabelVisibility-prop) , [QPieSeries::LabelVisibility](https://doc.qt.io/qt-6/qpieseries.html#LabelVisibility-enum) * Multi-axis support for 2D graphs added: [QAbstractSeries::axisX](https://doc.qt.io/qt-6/qabstractseries.html#axisX-prop) , [QAbstractSeries::axisY](https://doc.qt.io/qt-6/qabstractseries.html#axisY-prop) * Hover support for 2D series added: [QAbstractSeries::isHovered](https://doc.qt.io/qt-6/qabstractseries.html#hovered-prop) * Support for controlling plot area clipping in 2D graphs added: [clipPlotArea](https://doc.qt.io/qt-6/qml-qtgraphs-graphsview.html#clipPlotArea-prop) * Support for querying data point coordinates in [LineSeries](https://doc.qt.io/qt-6/qml-qtcharts-lineseries.html) added: [QLineSeries::dataPointCoordinatesAt](https://doc.qt.io/qt-6/qlineseries.html#dataPointCoordinatesAt) * Support for rendering a slice into an image in [Bars3D](https://doc.qt.io/qt-6/qml-qtdatavisualization-bars3d.html) and [Surface3D](https://doc.qt.io/qt-6/qml-qtdatavisualization-surface3d.html) added: [Q3DBarsWidgetItem::renderSliceToImage](https://doc.qt.io/qt-6/q3dbarswidgetitem.html#renderSliceToImage) , [Q3DSurfaceWidgetItem::renderSliceToImage](https://doc.qt.io/qt-6/q3dsurfacewidgetitem.html#renderSliceToImage) , [QtGraphs3D::SliceCaptureType](https://doc.qt.io/qt-6/qtgraphs3d.html#SliceCaptureType-enum) * Added [Bars3DNode](https://doc.qt.io/qt-6/qml-qtgraphs-bars3dnode.html) , [Scatter3DNode](https://doc.qt.io/qt-6/qml-qtgraphs-scatter3dnode.html) , and [Surface3DNode](https://doc.qt.io/qt-6/qml-qtgraphs-surface3dnode.html) for adding 3D graphs in [QtQuick3D](https://doc.qt.io/qt-6/qtquick3d-qmlmodule.html) applications inside View3Ds * Graph draw ordering support for 2D graphs added: [QAbstractSeries::zValue](https://doc.qt.io/qt-6/qabstractseries.html#zValue-prop) * Option to set timezone for [DateTimeAxis](https://doc.qt.io/qt-6/qml-qtcharts-datetimeaxis.html) added: QDateTimeAxis::timeZone * Categorized logging support added ### Qt GRPC Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-grpc-module "Direct link to this headline") * Performance improvements and bug-fixes for the [QGrpcHttp2Channel](https://doc.qt.io/qt-6/qgrpchttp2channel.html) . Read the blogpost [here](https://www.qt.io/blog/qtgrpc-tips-tricks-sweet-spots) . * Added the `unix-abstract` [Transportation scheme](https://doc.qt.io/qt-6/qgrpchttp2channel.html#transportation-scheme) to [QGrpcHttp2Channel](https://doc.qt.io/qt-6/qgrpchttp2channel.html) . * Added [serverInitialMetadata](https://doc.qt.io/qt-6/qgrpcoperation.html#serverInitialMetadata) and [serverTrailingMetadata](https://doc.qt.io/qt-6/qgrpcoperation.html#serverTrailingMetadata) interfaces to [QGrpcOperation](https://doc.qt.io/qt-6/qgrpcoperation.html) . * Added [QGrpcCallOptions::filterServerMetadata](https://doc.qt.io/qt-6/qgrpccalloptions.html#filterServerMetadata) and [QGrpcChannelOptions::filterServerMetadata](https://doc.qt.io/qt-6/qgrpcchanneloptions.html#filterServerMetadata) options to control the filtering of the received server-metadata. * Added [QGrpcCallOptions::addMetadata](https://doc.qt.io/qt-6/qgrpccalloptions.html#addMetadata) and [QGrpcChannelOptions::addMetadata](https://doc.qt.io/qt-6/qgrpcchanneloptions.html#addMetadata) for supporting incremental client-metadata updates. * Deprecated [metadata](https://doc.qt.io/qt-6/qgrpcchanneloptions.html#metadata) interfaces in favor of [QMultiHash](https://doc.qt.io/qt-6/qmultihash.html) based interfaces: [metadata](https://doc.qt.io/qt-6/qgrpcchanneloptions.html#metadata-2) (QtGrpc::MultiValue), [setMetadata](https://doc.qt.io/qt-6/qgrpcchanneloptions.html#setMetadata-3) (QMultiHash). ### Qt GUI Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-gui-module "Direct link to this headline") * [QStyleHints::accessibility](https://doc.qt.io/qt-6/qstylehints.html#accessibility-prop) provides access to user accessibility preferences, such as whether the system has enabled a setting for increased contrast. * Added [QAccessibilityHints](https://doc.qt.io/qt-6/qaccessibilityhints.html) to access individual accessibility settings. * [QRhi](https://doc.qt.io/qt-6/qrhi.html) : Added support for enumerating 3D graphics adapters (physical devices), when running on Direct 3D 11, 12, or Vulkan, via the [enumerateAdapters](https://doc.qt.io/qt-6/qrhi.html#enumerateAdapters) () function. * [QPainterPath::setCachingEnabled](https://doc.qt.io/qt-6/qpainterpath.html#setCachingEnabled) () can be used to turn on the caching of calculated values, increasing performance for certain operations at the expense of additional memory use. * Added [QPainterPath::trimmed](https://doc.qt.io/qt-6/qpainterpath.html#trimmed) () to return a section of the path. ### Qt HttpServer Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-httpserver-module "Direct link to this headline") * Added whitelist and blacklist of subnets in [QHttpServerConfiguration](https://doc.qt.io/qt-6/qhttpserverconfiguration.html) . * Added configurable keep-alive timeout in [QHttpServerConfiguration](https://doc.qt.io/qt-6/qhttpserverconfiguration.html) . * Made [QHttpServerRequest](https://doc.qt.io/qt-6/qhttpserverrequest.html) copyable. ### Qt Lottie Animation[](https://doc.qt.io/qt-6/whatsnew610.html#qt-lottie-animation "Direct link to this headline") * Added support for solid, null and precomposition layers. * Added [lottietoqml](https://doc.qt.io/qt-6/qtlottieanimation-lottietoqml-example.html) tool. This is an equivalent tool to [svgtoqml](https://doc.qt.io/qt-6/qtqml-tooling-svgtoqml.html) and it converts Lottie files to Qt Quick scenes described in QML. It is currently in tech preview. * Added a plugin for [VectorImage](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html) which enables it to load Lottie files in addition to SVG. This feature is tech preview and requires [assumeTrustedSource](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html#assumeTrustedSource-prop) to be set to `true`. * Added lottietoqml example and qtlottieviewer example to demonstrate usage of [Qt Lottie Animation](https://doc.qt.io/qt-6/whatsnew610.html#qt-lottie-animation) . ### Qt Multimedia Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-multimedia-module "Direct link to this headline") * Added a native PipeWire audio backend. * Audio pitch compensation for the FFmpeg-based [QMediaPlayer](https://doc.qt.io/qt-6/qmediaplayer.html) based on the excellent [Signalsmith Stretch library](https://signalsmith-audio.co.uk/code/stretch/) . The behavior can be customized via the [pitchCompensation](https://doc.qt.io/qt-6/qmediaplayer.html#pitchCompensation) property. * [QCapturableWindow](https://doc.qt.io/qt-6/qcapturablewindow.html) can now be constructed from [QWindow](https://doc.qt.io/qt-6/qwindow.html) in both C++ and QML. * Added a new class [QPlaybackOptions](https://doc.qt.io/qt-6/qplaybackoptions.html) that allows users to control low-level FFmpeg media playback options, for example, playback intent, network timeout, and probe size. * In [QAudioSink](https://doc.qt.io/qt-6/qaudiosink.html) and [QAudioSource](https://doc.qt.io/qt-6/qaudiosource.html) , added methods that allow users to operate with the underlying audio buffer in frame count instead of byte count. ### Qt Network Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-network-module "Direct link to this headline") * Added fromFile() method to [QSslCertificate](https://doc.qt.io/qt-6/qsslcertificate.html) . * Added setDateTimeValue() to [QHttpHeaders](https://doc.qt.io/qt-6/qhttpheaders.html) , a convenience method for setting date and time values in HTTP headers. * Added convenience methods to [QHttpHeaders](https://doc.qt.io/qt-6/qhttpheaders.html) to retrieve values as [QDateTime](https://doc.qt.io/qt-6/qdatetime.html) , integers, or lists of these types. ### Qt Protobuf Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-protobuf-module "Direct link to this headline") * Added [Qt Protobuf Mutable Getters](https://doc.qt.io/qt-6/qtprotobuf-mutable-getters.html) to generated Protobuf messages, making them accessible using the `mut` prefix. ### Qt QML Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-qml-module "Direct link to this headline") * Added a new [TreeModel](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-treemodel.html) QML type that allows the definition of a tree structure in the QML file and works with [TreeView](https://doc.qt.io/qt-6/qml-qtquick-treeview.html) . * Added [SortFilterProxyModel](https://doc.qt.io/qt-6/qml-qtqml-models-sortfilterproxymodel.html) QML type to sort and filter model data. This feature is in tech preview. * Added the delegateModelAccess property to [DelegateModel](https://doc.qt.io/qt-6/qml-qtqml-models-delegatemodel.html) and all views. You can now write through required properties into the model. * Added the [Synchronizer](https://doc.qt.io/qt-6/qml-qt-labs-synchronizer-synchronizer.html) QML type. Synchronizer keeps two or more properties in sync without using bindings. This feature is in tech preview. * Added semicolon customization rules to qmlformat. You can now control whether semicolons are added to the end of JS statements. * Added new qmllint warnings focused on improving compatibility with Qt Creator, including checks for Qt Design Studio-specific limitations, additional JavaScript-related warnings, and several new warnings related to QML enums and imports. * Removed support for manipulation of complex row structures from [TableModel](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-tablemodel.html) . * Changed the order of the role and value parameters in [TableModel::setData](https://doc.qt.io/qt-6/qml-qt-labs-qmlmodels-tablemodel.html#setData-method) to resolve ambiguity. ### Qt Quick Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-module "Direct link to this headline") * Added [FlexboxLayout](https://doc.qt.io/qt-6/qml-qtquick-layouts-flexboxlayout.html) QML type to arrange the quick items in flexible way as similar to [CSS Flexbox](https://www.w3.org/TR/css-flexbox-1/) . This feature is in tech preview. ### Qt Quick Controls Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-controls-module "Direct link to this headline") * The FluentWinUI3 style has improved support for contrast themes on Windows 11. * Added [SearchField](https://doc.qt.io/qt-6/qml-qtquick-controls-searchfield.html) Control ### Qt Quick Dialogs Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-dialogs-module "Direct link to this headline") * Added property [popupType](https://doc.qt.io/qt-6/qml-qtquick-dialogs-dialog.html#popupType-prop) which can be used to control whether a non-native dialog should open in a separate window or as an item in the existing scene. This has no effect when using native dialogs. ### Qt Quick Effects Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-effects-module "Direct link to this headline") ### Qt Quick 3D Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-3d-module "Direct link to this headline") * Added emit-mode to shaped emitters to allow particles to be emitted based on the surface normals of the shape. * Implemented [reversed](https://doc.qt.io/qt-6/qml-qtquick3d-particles3d-particleemitter3d.html#reversed-prop) emitters to enable particles to run from end time to begin time. * Several lightmap-related improvements and changes: * Introduced texels-per-unit based lightmap sizes, adding the [Model::texelsPerUnit](https://doc.qt.io/qt-6/qml-qtquick3d-model.html#texelsPerUnit-prop) and [Lightmapper::texelsPerUnit](https://doc.qt.io/qt-6/qml-qtquick3d-lightmapper.html#texelsPerUnit-prop) properties and replacing the now deprecated [Model::lightmapBaseResolution](https://doc.qt.io/qt-6/qml-qtquick3d-model-obsolete.html#lightmapBaseResolution-prop) property. * Introduced [Lightmapper::source](https://doc.qt.io/qt-6/qml-qtquick3d-lightmapper.html#source-prop) property to set one lightmap source for the whole scene, replacing and deprecating [BakedLightmap::loadPrefix](https://doc.qt.io/qt-6/qml-qtquick3d-bakedlightmap-obsolete.html#loadPrefix-prop) . * Added a builtin GPU-based Non-local Means (NLM) denoising for baked lightmaps, controlled via the [Lightmapper::denoiseSigma](https://doc.qt.io/qt-6/qml-qtquick3d-lightmapper.html#denoiseSigma-prop) property. * The lightmap baking window has been improved to show a progress bar and an estimation of time remaining. * Baking is now done in its own RHI context and does not block rendering of the running application. * RAM and VRAM usage has been decreased when baking certain scenes. * Added a lightmap viewer tool for debugging baked lightmap files via GUI or command-line. * Fixed color import for glTF2 baseColorFactor by correctly converting from linear to sRGB, aligning it with the spec. * Added [CapsuleGeometry](https://doc.qt.io/qt-6/qml-qtquick3d-helpers-capsulegeometry.html) to [QtQuick3D](https://doc.qt.io/qt-6/qtquick3d-qmlmodule.html) .Helpers with fixed textures, async creation support, and exposed uvProfile property. ### Qt Quick 3D XR Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-3d-xr-module "Direct link to this headline") * Exposed [method](https://doc.qt.io/qt-6/qml-qtquick3d-xr-xrspatialanchorlistmodel.html#requestSceneCapture-method) for requesting room scanning for spatial anchors. ### Qt Quick 3D Physics Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-3d-physics-module "Direct link to this headline") * Deprecated [CapsuleGeometry](https://doc.qt.io/qt-6/qml-qtquick3d-helpers-capsulegeometry.html) in favor of the improved one in [QtQuick3D](https://doc.qt.io/qt-6/qtquick3d-qmlmodule.html) . ### Qt Quick VectorImage Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-vectorimage-module "Direct link to this headline") * Added support for animated SVGs that matches animation support in Qt SVG. * Added [API](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html#assumeTrustedSource-prop) to indicate whether source file is trusted or not. * Added [API](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html#animations-prop) to control animation behavior. * By including a plugin provided by [Qt Lottie Animation](https://doc.qt.io/qt-6/whatsnew610.html#qt-lottie-animation) , [VectorImage](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html) can now also show Lottie files. This feature is regarded as tech preview and requires [assumeTrustedSource](https://doc.qt.io/qt-6/qml-qtquick-vectorimage-vectorimage.html#assumeTrustedSource-prop) to be set to `true`. ### Qt Serial Port Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-serial-port-module "Direct link to this headline") * Added support for limiting write buffer size using [writeBufferSize](https://doc.qt.io/qt-6/qserialport.html#writeBufferSize) property. ### Qt Serial Bus Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-serial-bus-module "Direct link to this headline") * Add missing move-constructor to [QCanBusDeviceInfo](https://doc.qt.io/qt-6/qcanbusdeviceinfo.html) . * Make [QCanBusFrame::FrameType](https://doc.qt.io/qt-6/qcanbusframe.html#FrameType-enum) and [QCanBusFrame::FrameError](https://doc.qt.io/qt-6/qcanbusframe.html#FrameError-enum) QMetaEnums. * The SocketCAN plugin no longer sets a default bitrate to avoid runtime warnings. Setting the bitrate must be done by system means `ip link set ...` or by libsocketcan and [QCanBusDevice::setConfigurationParameter](https://doc.qt.io/qt-6/qcanbusdevice.html#setConfigurationParameter) ([QCanBusDevice::BitRateKey](https://doc.qt.io/qt-6/qcanbusdevice.html#ConfigurationKey-enum) , ...). * The VirtualCAN plugin now supports up to ten virtual CAN channels from can0 to can9. ### Qt Sql Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-sql-module "Direct link to this headline") ### Qt SVG Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-svg-module "Direct link to this headline") * Added support for CSS animations for fill-opacity, stroke-opacity, and opacity properties. * Added an example that demonstrates how to view SVG files. ### Qt Test Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-test-module "Direct link to this headline") * Data-driven benchmarks now identify both global and local data in plaintext names * Backtraces from lldb are now disabled on Apple Silicon * When [QTest](https://doc.qt.io/qt-6/qtest.html) prints floating-point values in a comparison, it now gives full precision and includes a hexfloat version ### Qt VirtualKeyboard Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-virtualkeyboard-module "Direct link to this headline") * Added PURL and CPE information to the attribution files of 3rd party sources. * Added Latvian keyboard layout. ### Qt WebEngine Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-webengine-module "Direct link to this headline") * Added support for Chromium extensions, using [QWebEngineExtensionManager](https://doc.qt.io/qt-6/qwebengineextensionmanager.html) and [QWebEngineExtensionInfo](https://doc.qt.io/qt-6/qwebengineextensioninfo.html) * Added support for adding additional trusted CA certificates to a website profile without adding them to the platform certificate store: [setAdditionalTrustedCertificates](https://doc.qt.io/qt-6/qwebengineprofilebuilder.html#setAdditionalTrustedCertificates) * Added support for Back/Forward cache enabled using [QWebEngineSettings::BackForwardCacheEnabled](https://doc.qt.io/qt-6/qwebenginesettings.html#WebAttribute-enum) ### Qt WebView Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-webview-module "Direct link to this headline") * Added WebView2 plugin for the Windows platform. The new backend uses a native COM API from the Chromium based Edge browser called [WebView2](https://learn.microsoft.com/en-us/microsoft-edge/webview2/) . Therefore, you can now provide web content without shipping Qt [WebEngine](https://doc.qt.io/qt-6/qml-qtwebengine-webengine.html) . ### Qt Widgets Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-widgets-module "Direct link to this headline") * Added support for increased contrast mode for the fusion, macOS, and Windows 11 widgets styles. * Default editor event handling in item views has moved into the new [QAbstractItemDelegate::handleEditorEvent](https://doc.qt.io/qt-6/qabstractitemdelegate.html#handleEditorEvent) () function, which custom event handlers can use to continue with standard event handling. * Use [setSupportedDragActions](https://doc.qt.io/qt-6/qlistwidget.html#supportedDragActions-prop) () in [QListWidget](https://doc.qt.io/qt-6/qlistwidget.html) , [QTableWidget](https://doc.qt.io/qt-6/qtablewidget.html) , and [QTreeWidget](https://doc.qt.io/qt-6/qtreewidget.html) to change the supported drag actions. * The new [QLayout::horizontalSizeConstraint](https://doc.qt.io/qt-6/qlayout.html#horizontalSizeConstraint-prop) and [QLayout::horizontalSizeConstraint](https://doc.qt.io/qt-6/qlayout.html#horizontalSizeConstraint-prop) properties allow individually setting the horizontal and vertical size constraints of the widget. ### Qt XML Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-xml-module "Direct link to this headline") ### Qt Mqtt Module[](https://doc.qt.io/qt-6/whatsnew610.html#qt-mqtt-module "Direct link to this headline") * Add support for WebSockets/Secure WebSockets Tools[](https://doc.qt.io/qt-6/whatsnew610.html#tools "Direct link to this headline") -------------------------------------------------------------------------------------- ### QDoc Documentation Generator[](https://doc.qt.io/qt-6/whatsnew610.html#qdoc-documentation-generator "Direct link to this headline") * QDoc can now automatically add “view source” links to every C++ API declaration. Enable the feature with the new [url.sources](https://doc.qt.io/qt-6/25-qdoc-configuration-derivedprojects.html#url-sources-variable) family of configuration variables (`url.sources.enabled`, `url.sources.rootdir`, `url.sources.linktext`). * QDoc now detects circular inheritance in QML types using Floyd’s cycle-finding algorithm and reports the problem instead of getting stuck in an infinite loop. * QML property groups defined in `.qml` files are recognised and shown as a single grouped property when you document them with `\qmlproperty` commands. * Source files generated by Qt tools (`moc_`, `uic_`, `qrc_`, etc.) are now skipped automatically, which shortens QDoc build times on large projects. * The data type shown for a QML property inside a `.qml` file can now be overridden directly in the `\qmlproperty` command, even for non-aliased properties. * The [documentationinheaders](https://doc.qt.io/qt-6/22-qdoc-configuration-generalvariables.html#documentationinheaders-variable) option is no longer offered as a technical preview; rather, it is considered stable. It was first introduced in Qt 6.9. * When generating DocBook output, QDoc now includes overload notes. * Overloaded signals and slots now include a contextual snippet to show their use. * QDoc can link against Clang libraries from LLVM 21. * The .index-files include the declared return type from \\fn-commands. This is useful for multi-project builds, when authors override the return type of a function with `auto`. * You can now document your QML enumerations with the new [\\qmlenum](https://doc.qt.io/qt-6/13-qdoc-commands-topics.html#qmlenum-command) command. QDoc creates a new section, QML Enumerations, in the generated documentation. * Code snippets indentation is now normalized, stripping out excess left margin whitespace. This means that snippets from source that is heavily indented (e.g. in a deeply nested series of `if`\-statements) will present as if not nested. * QDoc now correctly parses template aliases with default parameters. * QDoc no longer auto-links to deprecated functions if there are non-deprecated alternatives. * You can prevent machine translation of strings using the new [\\notranslate-command](https://doc.qt.io/qt-6/11-qdoc-commands-specialcontent.html#notranslate-command) . ### Qt Linguist[](https://doc.qt.io/qt-6/whatsnew610.html#qt-linguist "Direct link to this headline") * Added support for organizing ID-based translations with custom labels in Qt Linguist and lupdate. * Introduced a QML form preview feature in Qt Linguist for visual validation of translations in context. * Updated Qt Linguist with a refreshed UI, including new icons, improved color palette, and better handling of dark mode. * lupdate and lrelease now support mixing ID-based and text-based translations within the same document. * Removed the Clang-based parser from lupdate. * Unified support for meta strings (comments like //: and //~) across different programming languages in lupdate. * Added new i18n examples to the documentation. * lrelease now provides the -fail-on-unfinished option to fail the build if there are unfinished translations. * Deprecated using `//=` metastring comments to set IDs for text-based translations. Platform Changes[](https://doc.qt.io/qt-6/whatsnew610.html#platform-changes "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ ### Build System Changes[](https://doc.qt.io/qt-6/whatsnew610.html#build-system-changes "Direct link to this headline") * Usage of a private Qt module Foo now requires a call to `find_package(Qt6 COMPONENTS FooPrivate)` to make the `Qt6::FooPrivate` target available. * Added a `DISCARD_FILE_CONTENTS` option to `qt_add_resources()`. * The `FILENAME_VARIABLE` option of `qt6_generate_deploy_[app_]script`, which was deprecated in Qt 6.6.0, has been removed. * Added the `NO_PLUGINS` argument to `qt_deploy_runtime_dependencies`. This turns off plugin deployment altogether. * Added the arguments `INCLUDE_PLUGIN_TYPES`, `EXCLUDE_PLUGIN_TYPES`, `INCLUDE_PLUGINS`, and `EXCLUDE_PLUGINS` to `qt_deploy_runtime_dependencies`. * Added arguments for selecting Qt plugins to `qt_generate_deploy_app_script`. * `qt6_import_plugins` doesn't have any effect anymore on plugin deployment with the CMake deployment API on Linux. * `qt6_deploy_runtime_dependencies` now supports the following plugin selection flags on Linux: `INCLUDE_PLUGINS`, `INCLUDE_PLUGIN_TYPES`, `EXCLUDE_PLUGINS`, `EXCLUDE_PLUGIN_TYPES`. * Added a `DISCARD_QML_CONTENTS` option to `qt_add_qml_module()`, that removes original QML and JS file contents from the target's resource system. ### Desktop Platforms[](https://doc.qt.io/qt-6/whatsnew610.html#desktop-platforms "Direct link to this headline") #### Windows[](https://doc.qt.io/qt-6/whatsnew610.html#windows "Direct link to this headline") #### macOS[](https://doc.qt.io/qt-6/whatsnew610.html#macos "Direct link to this headline") * Windows that opt into extended dynamic range (EDR) now trigger expose event on screen brightness change * The titleUIElement accessibility property is now supported * Service menu integration is now rich-text aware * [QOperatingSystemVersion::MacOSTahoe](https://doc.qt.io/qt-6/qoperatingsystemversion.html#MacOSTahoe-var) represents macOS 26 * Mappings for WhatsThisCursor and BusyCursor have been added * [QImage::toCGImage](https://doc.qt.io/qt-6/qimage.html#toCGImage) () now propagates the image's color space #### Wayland Client on Linux[](https://doc.qt.io/qt-6/whatsnew610.html#wayland-client-on-linux "Direct link to this headline") ### Mobile Platforms[](https://doc.qt.io/qt-6/whatsnew610.html#mobile-platforms "Direct link to this headline") #### Android[](https://doc.qt.io/qt-6/whatsnew610.html#android "Direct link to this headline") ##### Qt for Android[](https://doc.qt.io/qt-6/whatsnew610.html#qt-for-android "Direct link to this headline") * Updated Gradle to version 8.14.2 and Android Gradle Plugin AGP to version 8.10.1. * Added support for Android 12 Splash Screen. * Added support for Android 16KB page sizes. * Added an example (QtJennyDemo) for accessing Android APIs via C++ wrappers produced by a code generator (QtJenny). * Changed Android 16 (API 36) as maximum supported platform version. ##### Qt Quick for Android[](https://doc.qt.io/qt-6/whatsnew610.html#qt-quick-for-android "Direct link to this headline") * Added multiple arguments support for signals under QtQuickView. * Added support to register signal listeners before QML is fully loaded. * Public Java APIs in javadoc format. #### iOS[](https://doc.qt.io/qt-6/whatsnew610.html#ios "Direct link to this headline") * Added [QPointingDevice](https://doc.qt.io/qt-6/qpointingdevice.html) support for Apple Pencil * Fixed rotation for standard Apple Pencil * Added support for hover feature for Apple Pencil 2nd gen or later * Windows that opt into extended dynamic range (EDR) now trigger expose event on screen brightness change * Update requests will now be paused when the app moves out of active state * [QScreen](https://doc.qt.io/qt-6/qscreen.html) now also reports inverted screen orientations * RLIMIT\_STACK now reflects the effective stack size * [QImage::toCGImage](https://doc.qt.io/qt-6/qimage.html#toCGImage) () now propagates the image's color space ### Embedded Platforms[](https://doc.qt.io/qt-6/whatsnew610.html#embedded-platforms "Direct link to this headline") #### Boot to Qt[](https://doc.qt.io/qt-6/whatsnew610.html#boot-to-qt "Direct link to this headline") * Support was added for Yocto 5.2 (Walnascar). * [Support Levels for Target Hardware](https://doc.qt.io/qt-6/supported-platforms.html#support-levels-for-target-hardware) was updated with supported boards for Tier 2: * NXP i.MX 93 11x11 LPDDR4X EVK. * [Support Levels for Target Hardware](https://doc.qt.io/qt-6/supported-platforms.html#support-levels-for-target-hardware) was updated with supported boards for Tier 3: * Toradex Colibri iMX6 ULL. #### Real-Time Operating Systems[](https://doc.qt.io/qt-6/whatsnew610.html#real-time-operating-systems "Direct link to this headline") * Real-time operating system support is provided only for LTS releases. For non-LTS releases, support is available exclusively through Professional Services. Modules Deprecated in Qt 6.10[](https://doc.qt.io/qt-6/whatsnew610.html#modules-deprecated-in-qt-6-10 "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------- The following modules are deprecated. We strongly advise against using them in new code. * [Qt Charts](https://doc.qt.io/qt-6/qtcharts-index.html) * [Qt Data Visualization](https://doc.qt.io/qt-6/qtdatavisualization-index.html) The Qt Charts and Qt DataVisualization modules are deprecated. They continue to be part of the licensed software, and remain part of the Qt Project. However, for new code we recommend that you use [Qt Graphs](https://doc.qt.io/qt-6/qtgraphs-index.html) . Also, consult the documentation for {Qt Graphs Migration from Qt Charts}{migrating from Qt Charts} and [migrating from Qt Data Visualization](https://doc.qt.io/qt-6/qtgraphs-migration-guide.html) . For more information about the life-cycle of modules in Qt, see [QUIP-14](https://contribute.qt-project.org/quips/14#deprecating-a-module) . List of API Changes[](https://doc.qt.io/qt-6/whatsnew610.html#list-of-api-changes "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ These pages contain an overview of API changes in Qt 6.10: * [New Classes and Functions in Qt 6.10](https://doc.qt.io/qt-6/newclasses610.html) * [Obsolete Classes](https://doc.qt.io/qt-6/obsoleteclasses.html) Known Issues[](https://doc.qt.io/qt-6/whatsnew610.html#known-issues "Direct link to this headline") ---------------------------------------------------------------------------------------------------- For information about known issues in Qt 6.10 see [the Qt Wiki](https://wiki.qt.io/index.php?title=Qt_6.10_Known_Issues) . © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Multimedia | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Multimedia On this page Qt Multimedia ============= ![image of multimedia icons, courtesy of misirlou from the Noun Project](https://doc.qt.io/qt-6/images/noun_Media_166644.svg) Qt Multimedia is an add-on module that provides a rich set of QML types and C++ classes to handle multimedia content. It contains an easy to use API for playing back audio and video files and rendering those on screen, as well as a comprehensive API for recording audio and video from various sources, including system cameras and microphones, screen or window captures, and audio or video memory buffers. The functionality of this module is divided into the following submodules: | | | | --- | --- | | [Qt Multimedia](https://doc.qt.io/qt-6/multimediaoverview.html) | Provides an API for multimedia-specific use cases. | | [Qt Multimedia Widgets](https://doc.qt.io/qt-6/qtmultimediawidgets-index.html) | Provides a widget-based multimedia API. | | [Qt Spatial Audio](https://doc.qt.io/qt-6/qtspatialaudio-index.html) | Provides an API for implementing sound fields in 3D space. | Getting started[](https://doc.qt.io/qt-6/qtmultimedia-index.html#getting-started "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------- If you are porting from Qt 5 to Qt 6, see [Changes to Qt Multimedia](https://doc.qt.io/qt-6/qtmultimedia-changes-qt6.html) . If you are new to Qt Multimedia, the QML types can be [imported](https://doc.qt.io/qt-6/qtqml-syntax-imports.html) into an application using the following statement in your `.qml` file. import QtMultimedia To link against the C++ libraries, add the following to your project's `CMakeLists.txt` file. Substitute `my_project` with the name of your project. find\_package(Qt6 REQUIRED COMPONENTS Multimedia) target\_link\_libraries(my\_project PRIVATE Qt6::Multimedia) See [Building Qt Multimedia from sources](https://doc.qt.io/qt-6/qtmultimedia-building-from-source.html) for guidance on building Qt Multimedia from sources. Overviews and important topics[](https://doc.qt.io/qt-6/qtmultimedia-index.html#overviews-and-important-topics "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------------------------- * [Changes in Qt 6](https://doc.qt.io/qt-6/qtmultimedia-changes-qt6.html) * [Multimedia Overview](https://doc.qt.io/qt-6/multimediaoverview.html) * [Audio Overview](https://doc.qt.io/qt-6/audiooverview.html) * [Spatial Audio Overview](https://doc.qt.io/qt-6/spatialaudiooverview.html) * [Video Overview](https://doc.qt.io/qt-6/videooverview.html) * [Camera Overview](https://doc.qt.io/qt-6/cameraoverview.html) * [Supported Media Formats](https://doc.qt.io/qt-6/videooverview.html#supported-media-formats) QML types[](https://doc.qt.io/qt-6/qtmultimedia-index.html#qml-types "Direct link to this headline") ----------------------------------------------------------------------------------------------------- The following table outlines some important QML types. | Type | Description | | --- | --- | | [MediaPlayer](https://doc.qt.io/qt-6/qml-qtmultimedia-mediaplayer.html) | Add audio/video playback functionality to a scene. | | [CaptureSession](https://doc.qt.io/qt-6/qml-qtmultimedia-capturesession.html) | Create a session for capturing audio/video. | | [Camera](https://doc.qt.io/qt-6/qml-qtmultimedia-camera.html) | Access a camera connected to the system. | | [AudioInput](https://doc.qt.io/qt-6/qml-qtmultimedia-audioinput.html) | Access an audio input (microphone) connected to the system. | | [AudioOutput](https://doc.qt.io/qt-6/qml-qtmultimedia-audiooutput.html) | Access an audio output (speaker, headphone) connected to the system. | | [VideoOutput](https://doc.qt.io/qt-6/qml-qtmultimedia-videooutput.html) | Display video content. | | [MediaRecorder](https://doc.qt.io/qt-6/qml-qtmultimedia-mediarecorder.html) | Record audio/video from the [CaptureSession](https://doc.qt.io/qt-6/qml-qtmultimedia-capturesession.html)
. | | [ImageCapture](https://doc.qt.io/qt-6/qml-qtmultimedia-imagecapture.html) | Capture still images from the Camera. | | [Video](https://doc.qt.io/qt-6/qml-qtmultimedia-video.html) | Add Video playback functionality to a scene. Uses [MediaPlayer](https://doc.qt.io/qt-6/qml-qtmultimedia-mediaplayer.html)
and [VideoOutput](https://doc.qt.io/qt-6/qml-qtmultimedia-videooutput.html)
types to provide video playback functionality. | | [ScreenCapture](https://doc.qt.io/qt-6/qml-qtmultimedia-screencapture.html) | Captures a screen. | | [WindowCapture](https://doc.qt.io/qt-6/qml-qtmultimedia-windowcapture.html) | Captures a top-level window. | C++ classes[](https://doc.qt.io/qt-6/qtmultimedia-index.html#c-classes "Direct link to this headline") ------------------------------------------------------------------------------------------------------- The following table outlines some important C++ classes. | Class | Description | | --- | --- | | [QMediaPlayer](https://doc.qt.io/qt-6/qmediaplayer.html) | Playback media from a source. | | [QVideoWidget](https://doc.qt.io/qt-6/qvideowidget.html) | Display video from a media player or a capture session. | | [QMediaCaptureSession](https://doc.qt.io/qt-6/qmediacapturesession.html) | Capture audio and video. | | [QCamera](https://doc.qt.io/qt-6/qcamera.html) | Access a camera connected to the system | | [QAudioInput](https://doc.qt.io/qt-6/qaudioinput.html) | Access an audio input (microphone) connected to the system. | | [QAudioOutput](https://doc.qt.io/qt-6/qaudiooutput.html) | Access an audio output (speaker, headphone) connected to the system. | | [QImageCapture](https://doc.qt.io/qt-6/qimagecapture.html) | Capture still images with a camera. | | [QMediaRecorder](https://doc.qt.io/qt-6/qmediarecorder.html) | Record media content from a capture session. | | [QVideoSink](https://doc.qt.io/qt-6/qvideosink.html) | Access and render individual video frames. | | [QAudioSink](https://doc.qt.io/qt-6/qaudiosink.html) | Sends raw audio data to an audio output device. | | [QScreenCapture](https://doc.qt.io/qt-6/qscreencapture.html) | Captures a screen. | | [QWindowCapture](https://doc.qt.io/qt-6/qwindowcapture.html) | Captures a top-level window. | | [QVideoFrameInput](https://doc.qt.io/qt-6/qvideoframeinput.html) | Used to display or record video frames from memory buffers. | | [QAudioBufferInput](https://doc.qt.io/qt-6/qaudiobufferinput.html) | Supports playing or recording audio from memory buffers. | For playback of audio and video, [QMediaPlayer](https://doc.qt.io/qt-6/qmediaplayer.html) , [QAudioOutput](https://doc.qt.io/qt-6/qaudiooutput.html) , and [QVideoWidget](https://doc.qt.io/qt-6/qvideowidget.html) contain all necessary functionality. Other classes are dedicated to capturing audio and video content, with [QMediaCaptureSession](https://doc.qt.io/qt-6/qmediacapturesession.html) serving as the central class that manages the entire capture and recording process. Licenses and attributions[](https://doc.qt.io/qt-6/qtmultimedia-index.html#licenses-and-attributions "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------------- The Qt Multimedia module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.6, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt Multimedia in Qt 6.10.1 may contain third-party modules under the following permissive licenses: | | | | --- | --- | | [DR Libs, version 0.13.17](https://doc.qt.io/qt-6/qtmultimedia-attribution-dr-libs.html) | MIT No Attribution | | [FFmpeg, version 7.1.2](https://doc.qt.io/qt-6/qtmultimedia-attribution-ffmpeg.html) | GNU Lesser General Public License v2.1 or later and BSD 3-Clause "New" or "Revised" License and BSD 2-Clause "Simplified" License and BSD Source Code Attribution and ISC License and MIT License and Mozilla Public License 2.0 | | [Signalsmith Stretch, version 1.0.0](https://doc.qt.io/qt-6/qtmultimedia-attribution-signalsmith-stretch.html) | MIT License | | [Two-Level Segregated Fit, version v3.1](https://doc.qt.io/qt-6/qtmultimedia-attribution-tlfs.html) | BSD 3-Clause "New" or "Revised" License | | [boost](https://doc.qt.io/qt-6/qtmultimedia-attribution-ffmpeg-boost.html) | Boost Software License 1.0 | | [libjpeg](https://doc.qt.io/qt-6/qtmultimedia-attribution-ffmpeg-libjpeg.html) | Independent JPEG Group License | | [zlib](https://doc.qt.io/qt-6/qtmultimedia-attribution-ffmpeg-zlib.html) | zlib License | Note that video compression standards, such as the H.264 media compression standard, may be covered by patents and can incur royalty fees. This can apply to any implementation, also if the implementation is provided as an operating system service, through a third-party library, or any of Qt Multimedia's backends. The Qt licenses do not cover such fees. Target platform and backend notes[](https://doc.qt.io/qt-6/qtmultimedia-index.html#target-platform-and-backend-notes "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------------------------------- Qt Multimedia offers user-friendly, cross-platform APIs for media playback, recording, and device management. The implementation of core APIs, including [QMediaDevices](https://doc.qt.io/qt-6/qmediadevices.html) , [QAudioDevice](https://doc.qt.io/qt-6/qaudiodevice.html) , [QSoundEffect](https://doc.qt.io/qt-6/qsoundeffect.html) , [QAudioSink](https://doc.qt.io/qt-6/qaudiosink.html) , and [QAudioSource](https://doc.qt.io/qt-6/qaudiosource.html) are integrated into the main Qt Multimedia library, eliminating the need for additional libraries. Other Qt Multimedia APIs are implemented using plugin libraries known as media backends. The main media backend, built on [FFmpeg](http://ffmpeg.org/) , ensures seamless cross-platform functionality, and is the default on all platforms except WebAssembly and embedded Linux/Boot2Qt. With Boot2Qt, the default backend is built on top of [GStreamer](https://gstreamer.freedesktop.org/) , but the FFmpeg media backend can be enabled using the `QT_MEDIA_BACKEND` environment variable. ### The FFmpeg backend[](https://doc.qt.io/qt-6/qtmultimedia-index.html#the-ffmpeg-backend "Direct link to this headline") The FFmpeg media backend relies on the **FFmpeg 7.1** libraries, which are included with the Qt Online Installer and tested by the maintainers. The binary packages from the online installer use dynamic linking to FFmpeg. Therefore, applications must either bundle FFmpeg binaries in their installer or depend on FFmpeg being installed on the operating system. The FFmpeg libraries are automatically deployed using Qt's deployment tools as described in the [Deploying Qt Applications](https://doc.qt.io/qt-6/deployment.html) documentation, except for [Linux/X11](https://doc.qt.io/qt-6/linux-deployment.html) . Applications can also deploy their own build of FFmpeg, either as shared or static libraries, provided the FFmpeg major version matches the version used by Qt. While Qt Multimedia leverages the FFmpeg media backend on most operating systems, platform specific functional or visual differences may arise between applications on different platforms. FFmpeg does not provide identical codec and format support across all platforms, and the performance of Qt Multimedia features may depend on hardware support that is only available on certain platforms. For instance, FFmpeg encounters specific issues with hardware acceleration on Linux targets with ARM architectures. Therefore, it is recommended to test Qt Multimedia applications on all target platforms. **Note:** The FFmpeg project provides features under various licenses. The pre-built FFmpeg libraries that are provided through the Online Installer are only including features that agree with the permissive licenses listed under [Licenses and Attributions](https://doc.qt.io/qt-6/qtmultimedia-index.html#licenses-and-attributions) . To ease development and debugging, some FFmpeg functionality is configurable via [environment varibles](https://doc.qt.io/qt-6/advanced-ffmpeg-configuration.html) which are part of the private Qt Multimedia API. ### Native backends[](https://doc.qt.io/qt-6/qtmultimedia-index.html#native-backends "Direct link to this headline") For compatibility with existing applications, we maintain native media backends for each operating system: * [GStreamer backend](https://doc.qt.io/qt-6/qtmultimedia-gstreamer.html) on Embedded Linux * AVFoundation on macOS and iOS * Windows Media Foundation on Windows (deprecated since Qt 6.10) * MediaCodec framework on Android * WebAudio and WebVideo on WebAssembly **Note:** The FFmpeg media backend is the default backend except on WebAssembly, native backends are still available but with **limited** support. The GStreamer backend is only available on Linux, and is only recommended for embedded applications. **Note:** MediaCodec on Android is deprecated as of Qt 6.8 and will be removed in the next major release. **Note:** The Windows media backend built on top of Windows Media Foundation is deprecated as of Qt 6.10 and will be removed in the next major release. Qt Maintainers will strive to fix critical issues with the native backends but don't guarantee fixing minor issues, including inconsistent behavior across platforms. New features will only be implemented on the FFmpeg media backend, with the exception of WebAssembly. The GStreamer backend has some private APIs to allow more fine-grained control. However, there are known bugs in the GStreamer backend. More details can be found in [platform notes for the GStreamer backend](https://doc.qt.io/qt-6/qtmultimedia-gstreamer.html) . Backend limitations will be documented, and their status will be maintained in the respective classes. ### Changing backends[](https://doc.qt.io/qt-6/qtmultimedia-index.html#changing-backends "Direct link to this headline") In the case of issues with the default FFmpeg backend, we suggest testing with a native backend. You can switch to native backends by setting the `QT_MEDIA_BACKEND` environment variable to `windows`, `gstreamer` (on Embedded Linux), `darwin` (on macOS and iOS), or `android`: export QT\_MEDIA\_BACKEND\=darwin To force assign FFmpeg as the used backend, set the variable to `ffmpeg`: export QT\_MEDIA\_BACKEND\=ffmpeg On the Qt Multimedia compilation stage, the default media backend can be configured via cmake variable `QT_DEFAULT_MEDIA_BACKEND`. ### Target platform notes[](https://doc.qt.io/qt-6/qtmultimedia-index.html#target-platform-notes "Direct link to this headline") The following pages list issues for specific target platforms. * [Windows](https://doc.qt.io/qt-6/qtmultimedia-windows.html) * [macOS and iOS](https://doc.qt.io/qt-6/qtmultimedia-apple.html) * [WebAssembly](https://doc.qt.io/qt-6/qtmultimedia-wasm.html) * [Linux](https://doc.qt.io/qt-6/qtmultimedia-linux.html) * [Embedded Linux and GStreamer](https://doc.qt.io/qt-6/qtmultimedia-gstreamer.html) Permissions[](https://doc.qt.io/qt-6/qtmultimedia-index.html#permissions "Direct link to this headline") --------------------------------------------------------------------------------------------------------- Starting from Qt 6.6, the Qt Multimedia module uses the new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API to handle [camera](https://doc.qt.io/qt-6/qcamerapermission.html) and [microphone](https://doc.qt.io/qt-6/qmicrophonepermission.html) permissions. This means that Qt itself no longer queries for these permissions, so this needs to be done directly from the client application. Please refer to the [Application Permissions](https://doc.qt.io/qt-6/permissions.html) page for an example of how to integrate the new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API into the application. Reference and examples[](https://doc.qt.io/qt-6/qtmultimedia-index.html#reference-and-examples "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- * [QML Types](https://doc.qt.io/qt-6/qtmultimedia-qmlmodule.html) * [C++ Classes](https://doc.qt.io/qt-6/qtmultimedia-modules.html) * [Examples](https://doc.qt.io/qt-6/multimedia-examples.html) © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Quick Controls | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Quick Controls On this page Qt Quick Controls ================= Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick. The module was introduced in Qt 5.7. ![](https://doc.qt.io/qt-6/images/qtquickcontrols-styles.png) Qt Quick Controls comes with a selection of customizable styles. See [Styling Qt Quick Controls](https://doc.qt.io/qt-6/qtquickcontrols-styles.html) for more details. Using the Module[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#using-the-module "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- ### QML API[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#qml-api "Direct link to this headline") The QML types of the module are available through the `QtQuick.Controls` import. To use the types, add the following import statement to your .qml file: import QtQuick.Controls ### C++ API[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#c-api "Direct link to this headline") Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . #### Building with CMake[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS QuickControls2) target\_link\_libraries(mytarget PRIVATE Qt6::QuickControls2) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. #### Building with qmake[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= quickcontrols2 ### Building From Source[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#building-from-source "Direct link to this headline") The **Qt Image Formats** module is recommended, but not required. It provides support for the `.webp` format used by the [Imagine style](https://doc.qt.io/qt-6/qtquickcontrols-imagine.html#animated-images) . Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#controls "Direct link to this headline") ------------------------------------------------------------------------------------------------------ For the full list of Qt Quick Controls, see [QML Types](https://doc.qt.io/qt-6/qtquick-controls-qmlmodule.html) . ### Button Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#button-controls "Direct link to this headline") | | | | --- | --- | | [AbstractButton](https://doc.qt.io/qt-6/qml-qtquick-controls-abstractbutton.html) | Abstract base type providing functionality common to buttons | | [Button](https://doc.qt.io/qt-6/qml-qtquick-controls-button.html) | Push-button that can be clicked to perform a command or answer a question | | [CheckBox](https://doc.qt.io/qt-6/qml-qtquick-controls-checkbox.html) | Check button that can be toggled on or off | | [DelayButton](https://doc.qt.io/qt-6/qml-qtquick-controls-delaybutton.html) | Check button that triggers when held down long enough | | [RadioButton](https://doc.qt.io/qt-6/qml-qtquick-controls-radiobutton.html) | Exclusive radio button that can be toggled on or off | | [RoundButton](https://doc.qt.io/qt-6/qml-qtquick-controls-roundbutton.html) | A push-button control with rounded corners that can be clicked by the user | | [Switch](https://doc.qt.io/qt-6/qml-qtquick-controls-switch.html) | Button that can be toggled on or off | | [ToolButton](https://doc.qt.io/qt-6/qml-qtquick-controls-toolbutton.html) | Button with a look suitable for a ToolBar | ### Container Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#container-controls "Direct link to this headline") | | | | --- | --- | | [ApplicationWindow](https://doc.qt.io/qt-6/qml-qtquick-controls-applicationwindow.html) | Styled top-level window with support for a header and footer | | [Container](https://doc.qt.io/qt-6/qml-qtquick-controls-container.html) | Abstract base type providing functionality common to containers | | [Frame](https://doc.qt.io/qt-6/qml-qtquick-controls-frame.html) | Visual frame for a logical group of controls | | [GroupBox](https://doc.qt.io/qt-6/qml-qtquick-controls-groupbox.html) | Visual frame and title for a logical group of controls | | [HorizontalHeaderView](https://doc.qt.io/qt-6/qml-qtquick-controls-horizontalheaderview.html) | Provides a horizontal header view to accompany a TableView | | [Page](https://doc.qt.io/qt-6/qml-qtquick-controls-page.html) | Styled page control with support for a header and footer | | [Pane](https://doc.qt.io/qt-6/qml-qtquick-controls-pane.html) | Provides a background matching with the application style and theme | | [ScrollView](https://doc.qt.io/qt-6/qml-qtquick-controls-scrollview.html) | Scrollable view | | [SplitView](https://doc.qt.io/qt-6/qml-qtquick-controls-splitview.html) | Lays out items with a draggable splitter between each item | | [StackView](https://doc.qt.io/qt-6/qml-qtquick-controls-stackview.html) | Provides a stack-based navigation model | | [SwipeView](https://doc.qt.io/qt-6/qml-qtquick-controls-swipeview.html) | Enables the user to navigate pages by swiping sideways | | [TabBar](https://doc.qt.io/qt-6/qml-qtquick-controls-tabbar.html) | Allows the user to switch between different views or subtasks | | [ToolBar](https://doc.qt.io/qt-6/qml-qtquick-controls-toolbar.html) | Container for context-sensitive controls | | [VerticalHeaderView](https://doc.qt.io/qt-6/qml-qtquick-controls-verticalheaderview.html) | Offers a vertical header view to accompany a TableView | ### Delegate Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#delegate-controls "Direct link to this headline") | | | | --- | --- | | [CheckDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-checkdelegate.html) | Item delegate with a check indicator that can be toggled on or off | | [HorizontalHeaderViewDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-horizontalheaderviewdelegate.html) | | [ItemDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-itemdelegate.html) | Basic item delegate that can be used in various views and controls | | [RadioDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-radiodelegate.html) | Exclusive item delegate with a radio indicator that can be toggled on or off | | [SwipeDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-swipedelegate.html) | Swipable item delegate | | [SwitchDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-switchdelegate.html) | Item delegate with a switch indicator that can be toggled on or off | | [TableViewDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-tableviewdelegate.html) | A delegate that can be assigned to a TableView | | [TreeViewDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-treeviewdelegate.html) | A delegate that can be assigned to a TreeView | | [VerticalHeaderViewDelegate](https://doc.qt.io/qt-6/qml-qtquick-controls-verticalheaderviewdelegate.html) | ### Indicator Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#indicator-controls "Direct link to this headline") | | | | --- | --- | | [BusyIndicator](https://doc.qt.io/qt-6/qml-qtquick-controls-busyindicator.html) | Indicates background activity, for example, while content is being loaded | | [PageIndicator](https://doc.qt.io/qt-6/qml-qtquick-controls-pageindicator.html) | Indicates the currently active page | | [ProgressBar](https://doc.qt.io/qt-6/qml-qtquick-controls-progressbar.html) | Indicates the progress of an operation | | [ScrollBar](https://doc.qt.io/qt-6/qml-qtquick-controls-scrollbar.html) | Vertical or horizontal interactive scroll bar | | [ScrollIndicator](https://doc.qt.io/qt-6/qml-qtquick-controls-scrollindicator.html) | Vertical or horizontal non-interactive scroll indicator | ### Input Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#input-controls "Direct link to this headline") | | | | --- | --- | | [ComboBox](https://doc.qt.io/qt-6/qml-qtquick-controls-combobox.html) | Combined button and popup list for selecting options | | [Dial](https://doc.qt.io/qt-6/qml-qtquick-controls-dial.html) | Circular dial that is rotated to set a value | | [RangeSlider](https://doc.qt.io/qt-6/qml-qtquick-controls-rangeslider.html) | Used to select a range of values by sliding two handles along a track | | [SearchField](https://doc.qt.io/qt-6/qml-qtquick-controls-searchfield.html) | A specialized input field designed to use for search functionality | | [Slider](https://doc.qt.io/qt-6/qml-qtquick-controls-slider.html) | Used to select a value by sliding a handle along a track | | [SpinBox](https://doc.qt.io/qt-6/qml-qtquick-controls-spinbox.html) | Allows the user to select from a set of preset values | | [TextArea](https://doc.qt.io/qt-6/qml-qtquick-controls-textarea.html) | Multi-line text input area | | [TextField](https://doc.qt.io/qt-6/qml-qtquick-controls-textfield.html) | Single-line text input field | | [Tumbler](https://doc.qt.io/qt-6/qml-qtquick-controls-tumbler.html) | Spinnable wheel of items that can be selected | ### Menu Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#menu-controls "Direct link to this headline") | | | | --- | --- | | [ContextMenu](https://doc.qt.io/qt-6/qml-qtquick-controls-contextmenu.html) | Attached type provides a way to open a context menu in a platform-appropriate manner | | [Menu](https://doc.qt.io/qt-6/qml-qtquick-controls-menu.html) | Popup that can be used as a context menu or popup menu | | [MenuBar](https://doc.qt.io/qt-6/qml-qtquick-controls-menubar.html) | Provides a window menu bar | | [MenuBarItem](https://doc.qt.io/qt-6/qml-qtquick-controls-menubaritem.html) | Presents a drop-down menu within a MenuBar | | [MenuItem](https://doc.qt.io/qt-6/qml-qtquick-controls-menuitem.html) | Presents an item within a Menu | ### Navigation Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#navigation-controls "Direct link to this headline") | | | | --- | --- | | [Drawer](https://doc.qt.io/qt-6/qml-qtquick-controls-drawer.html) | Side panel that can be opened and closed using a swipe gesture | | [StackView](https://doc.qt.io/qt-6/qml-qtquick-controls-stackview.html) | Provides a stack-based navigation model | | [SwipeView](https://doc.qt.io/qt-6/qml-qtquick-controls-swipeview.html) | Enables the user to navigate pages by swiping sideways | | [TabBar](https://doc.qt.io/qt-6/qml-qtquick-controls-tabbar.html) | Allows the user to switch between different views or subtasks | | [TabButton](https://doc.qt.io/qt-6/qml-qtquick-controls-tabbutton.html) | Button with a look suitable for a TabBar | ### Popup Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#popup-controls "Direct link to this headline") | | | | --- | --- | | [Dialog](https://doc.qt.io/qt-6/qml-qtquick-controls-dialog.html) | Popup dialog with standard buttons and a title, used for short-term interaction with the user | | [Drawer](https://doc.qt.io/qt-6/qml-qtquick-controls-drawer.html) | Side panel that can be opened and closed using a swipe gesture | | [Menu](https://doc.qt.io/qt-6/qml-qtquick-controls-menu.html) | Popup that can be used as a context menu or popup menu | | [Popup](https://doc.qt.io/qt-6/qml-qtquick-controls-popup.html) | Base type of popup-like user interface controls | | [ToolTip](https://doc.qt.io/qt-6/qml-qtquick-controls-tooltip.html) | Provides tool tips for any control | ### Separator Controls[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#separator-controls "Direct link to this headline") | | | | --- | --- | | [MenuSeparator](https://doc.qt.io/qt-6/qml-qtquick-controls-menuseparator.html) | Separates a group of items in a menu from adjacent items | | [ToolSeparator](https://doc.qt.io/qt-6/qml-qtquick-controls-toolseparator.html) | Separates a group of items in a toolbar from adjacent items | Versions[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#versions "Direct link to this headline") ------------------------------------------------------------------------------------------------------ Qt Quick Controls 2.0 was introduced in Qt 5.7. Subsequent minor Qt releases increment the import version of the Qt Quick Controls modules by one, until Qt 5.12, where the import versions match Qt's minor version. In Qt 6, both the major and minor versions match, and version numbers may be omitted from imports in QML. If the version is omitted, the latest version will be used. The experimental Qt Labs modules use import version 1.0. | `Qt` | [`QtQuick`](https://doc.qt.io/qt-6/qtquick-qmlmodule.html) | [`QtQuick.Controls`](https://doc.qt.io/qt-6/qtquick-controls-qmlmodule.html)
,
[`QtQuick.Controls.Material`](https://doc.qt.io/qt-6/qtquickcontrols-material.html)
,
[`QtQuick.Controls.Universal`](https://doc.qt.io/qt-6/qtquickcontrols-universal.html)
,
[`QtQuick.Templates`](https://doc.qt.io/qt-6/qtquick-templates-qmlmodule.html) | [`Qt.labs.platform`](https://doc.qt.io/qt-6/qt-labs-platform-qmlmodule.html) | | --- | --- | --- | --- | | 5.7 | 2.7 | 2.0 | 1.0 | | 5.8 | 2.8 | 2.1 | 1.0 | | 5.9 | 2.9 | 2.2 | 1.0 | | 5.10 | 2.10 | 2.3 | 1.0 | | 5.11 | 2.11 | 2.4 | 1.0 | | 5.12 | 2.12 | 2.12 | 1.0 | | 6.0 | 6.0 | 6.0 | 1.0 | | ... | ... | ... | ... | ### Revisions[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#revisions "Direct link to this headline") Due to how Qt Quick Controls are implemented, new properties that are added may clash with any user-defined properties of the same name. For example, the following snippet will result in an error: import QtQuick.Controls 2.13 [ApplicationWindow](https://doc.qt.io/qt-6/qml-qtquick-controls-applicationwindow.html) { // ... [ComboBox](https://doc.qt.io/qt-6/qml-qtquick-controls-combobox.html) { anchors.centerIn: parent // As currentValue was added in 2.14, the versioned import above // should cause this property to be used, but instead an error is produced: // "Cannot override FINAL property" property [int](https://doc.qt.io/qt-6/qml-int.html) currentValue: 0 } } These properties should be renamed to avoid the conflict. Module Evolution[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#module-evolution "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- Qt Quick Controls was originally written with touch interfaces as the primary focus. While it is already possible to develop desktop interfaces, work is ongoing to provide a more native look and feel. [Changes to Qt Quick Controls](https://doc.qt.io/qt-6/qtquickcontrols-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Articles and Guides[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#articles-and-guides "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------------- * [Getting Started](https://doc.qt.io/qt-6/qtquickcontrols-gettingstarted.html) * [Guidelines](https://doc.qt.io/qt-6/qtquickcontrols-guidelines.html) * [Styling](https://doc.qt.io/qt-6/qtquickcontrols-styles.html) * [Icons](https://doc.qt.io/qt-6/qtquickcontrols-icons.html) * [Customization](https://doc.qt.io/qt-6/qtquickcontrols-customize.html) * [Using File Selectors](https://doc.qt.io/qt-6/qtquickcontrols-fileselectors.html) * [Deployment](https://doc.qt.io/qt-6/qtquickcontrols-deployment.html) * [Configuration File](https://doc.qt.io/qt-6/qtquickcontrols-configuration.html) * [Environment Variables](https://doc.qt.io/qt-6/qtquickcontrols-environment.html) Examples[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#examples "Direct link to this headline") ------------------------------------------------------------------------------------------------------ * [Gallery](https://doc.qt.io/qt-6/qtquickcontrols-gallery-example.html) * [Chat Tutorial](https://doc.qt.io/qt-6/qtquickcontrols-chattutorial-example.html) * [Text Editor](https://doc.qt.io/qt-6/qtquickcontrols-texteditor-example.html) * [Wearable Demo](https://doc.qt.io/qt-6/qtquickcontrols-wearable-example.html) * [Automotive Example](https://doc.qt.io/qt-6/qtquickcontrols-imagine-automotive-example.html) * [All Examples](https://doc.qt.io/qt-6/qtquickcontrols-examples.html) Reference[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#reference "Direct link to this headline") -------------------------------------------------------------------------------------------------------- * [QML Types](https://doc.qt.io/qt-6/qtquick-controls-qmlmodule.html) * [C++ Classes](https://doc.qt.io/qt-6/qtquickcontrols2-module.html) Related Modules[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#related-modules "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- * [Qt Quick](https://doc.qt.io/qt-6/topics-graphics2d.html#qt-quick) * [Qt Quick Layouts](https://doc.qt.io/qt-6/qtquicklayouts-index.html) * [Qt Quick Templates 2](https://doc.qt.io/qt-6/qtquicktemplates2-index.html) * [Qt Labs Platform](https://doc.qt.io/qt-6/qtlabsplatform-index.html) License and Attributions[](https://doc.qt.io/qt-6/qtquickcontrols-index.html#license-and-attributions "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------- Qt Quick Controls is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under the [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. Furthermore, Qt Quick Controls potentially contains third party modules under the following permissive licenses: | | | | --- | --- | | [Shadow values from Angular Material](https://doc.qt.io/qt-6/qtquickcontrols-attribution-shadow-angular-material.html) | MIT License | © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt OpenGL Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt OpenGL On this page Qt OpenGL ========= Qt has two main approaches to UI development: [Qt Quick](https://doc.qt.io/qt-6/qtquick-index.html) and [Qt Widgets](https://doc.qt.io/qt-6/qtwidgets-index.html) . They exist to support different types of user interfaces, and build on separate graphics engines that have been optimized for each of these types. It is possible to combine code written in the OpenGL graphics API with both of these user interface types in Qt. This can be useful when the application has its own OpenGL-dependent code, or when it is integrating with a third-party OpenGL-based renderer. The Qt OpenGL module contains convenience classes to make this type of integration easier and faster. Qt OpenGL and Qt Widgets[](https://doc.qt.io/qt-6/qtopengl-index.html#qt-opengl-and-qt-widgets "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------------------- [Qt Widgets](https://doc.qt.io/qt-6/qtwidgets-index.html) is typically rendered by a highly optimized and accurate software rasterizer, and the final content reproduced on screen using a method appropriate for the platform where the application is running. But it is also possible to combine [Qt Widgets](https://doc.qt.io/qt-6/qtwidgets-index.html) with OpenGL. The main entry point for this is the [QOpenGLWidget](https://doc.qt.io/qt-6/qopenglwidget.html) class. This class can be used to enable OpenGL rendering for a certain part of the widget tree, and the classes in the Qt OpenGL module can be used to facilitate any application-side OpenGL code. Qt OpenGL and Qt Quick[](https://doc.qt.io/qt-6/qtopengl-index.html#qt-opengl-and-qt-quick "Direct link to this headline") --------------------------------------------------------------------------------------------------------------------------- [Qt Quick](https://doc.qt.io/qt-6/qtquick-index.html) is optimized for hardware-accelerated rendering. By default, it will be built on the low-level graphics API most appropriate for the target platform. For instance, it will default to `Direct3D` on Windows, whereas on macOS, it will default to `Metal`. But it is also possible to manually select OpenGL as the active graphics API on platforms where this is supported. For more details on enabling OpenGL with [Qt Quick](https://doc.qt.io/qt-6/qtquick-index.html) , see [scenegraph renderer documentation](https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph-renderer.html#rendering-via-the-qt-rendering-hardware-interface) . Using the Module[](https://doc.qt.io/qt-6/qtopengl-index.html#using-the-module "Direct link to this headline") --------------------------------------------------------------------------------------------------------------- Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . ### Building with CMake[](https://doc.qt.io/qt-6/qtopengl-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS OpenGL) target\_link\_libraries(mytarget PRIVATE Qt6::OpenGL) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. ### Building with qmake[](https://doc.qt.io/qt-6/qtopengl-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= opengl Examples[](https://doc.qt.io/qt-6/qtopengl-index.html#examples "Direct link to this headline") ----------------------------------------------------------------------------------------------- * [Qt OpenGL Examples](https://doc.qt.io/qt-6/examples-widgets-opengl.html) Reference[](https://doc.qt.io/qt-6/qtopengl-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------- * [C++ Classes](https://doc.qt.io/qt-6/qtopengl-module.html) Module Evolution[](https://doc.qt.io/qt-6/qtopengl-index.html#module-evolution "Direct link to this headline") --------------------------------------------------------------------------------------------------------------- [Changes to Qt OpenGL](https://doc.qt.io/qt-6/opengl-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses and Trademarks[](https://doc.qt.io/qt-6/qtopengl-index.html#licenses-and-trademarks "Direct link to this headline") ----------------------------------------------------------------------------------------------------------------------------- The Qt OpenGL module is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses: The [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. OpenGL® is a trademark of Silicon Graphics, Inc. in the United States and other countries. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Positioning | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Positioning On this page Qt Positioning ============== The Qt Positioning API provides positioning information via QML and C++ interfaces. Currently, the API is supported on [Android](https://doc.qt.io/qt-6/android.html) , [iOS](https://doc.qt.io/qt-6/ios.html) , [macOS](https://doc.qt.io/qt-6/macos.html) , [Linux](https://doc.qt.io/qt-6/linux.html) , and [Windows](https://doc.qt.io/qt-6/windows.html) (with GPS receivers exposed as a serial port providing NMEA sentences or using `Windows.Devices.Geolocation`). Overview[](https://doc.qt.io/qt-6/qtpositioning-index.html#overview "Direct link to this headline") ---------------------------------------------------------------------------------------------------- The Qt Positioning API lets you to determine a position by using a variety of possible sources, including satellite, wifi, or text files. That information can then be used to, for example, determine a position on a map. In addition, you can use to the API to retrieve satellite information and perform area based monitoring. Using the Module[](https://doc.qt.io/qt-6/qtpositioning-index.html#using-the-module "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- ### QML API[](https://doc.qt.io/qt-6/qtpositioning-index.html#qml-api "Direct link to this headline") The QML types of the module are available through the `QtPositioning` import. To use the types, add the following import statement to your .qml file: import QtPositioning ### C++ API[](https://doc.qt.io/qt-6/qtpositioning-index.html#c-api "Direct link to this headline") Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including [CMake](https://cmake.org/cmake/help/latest/) and [qmake](https://doc.qt.io/qt-6/qmake-manual.html) . #### Building with CMake[](https://doc.qt.io/qt-6/qtpositioning-index.html#building-with-cmake "Direct link to this headline") Use the `find_package()` command to locate the needed module component in the `Qt6` package: find\_package(Qt6 REQUIRED COMPONENTS Positioning) target\_link\_libraries(mytarget PRIVATE Qt6::Positioning) For more details, see the [Build with CMake](https://doc.qt.io/qt-6/cmake-manual.html) overview. #### Building with qmake[](https://doc.qt.io/qt-6/qtpositioning-index.html#building-with-qmake "Direct link to this headline") To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= positioning Permissions[](https://doc.qt.io/qt-6/qtpositioning-index.html#permissions "Direct link to this headline") ---------------------------------------------------------------------------------------------------------- Starting from Qt 6.6, the Qt Positioning module uses new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API to handle [location](https://doc.qt.io/qt-6/qlocationpermission.html) permissions. This means that Qt itself no longer queries for these permissions, so this needs to be done directly from the client application. Please refer to the [Application Permissions](https://doc.qt.io/qt-6/permissions.html) page for an example of how to integrate the new [QPermission](https://doc.qt.io/qt-6/qpermission.html) API into the application. Articles and Guides[](https://doc.qt.io/qt-6/qtpositioning-index.html#articles-and-guides "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------- * [Positioning introduction for C++](https://doc.qt.io/qt-6/location-positioning-cpp.html) * [Positioning introduction for QML](https://doc.qt.io/qt-6/location-positioning-qml.html) * [Qt Positioning Plugins](https://doc.qt.io/qt-6/qtpositioning-plugins.html) * [Interfaces between C++ and QML Code in Qt Positioning](https://doc.qt.io/qt-6/positioning-cpp-qml.html) * [Qt Positioning on Android](https://doc.qt.io/qt-6/qtpositioning-android.html) * [Qt Positioning on iOS](https://doc.qt.io/qt-6/qtpositioning-ios.html) Examples[](https://doc.qt.io/qt-6/qtpositioning-index.html#examples "Direct link to this headline") ---------------------------------------------------------------------------------------------------- * [Qt Positioning Examples](https://doc.qt.io/qt-6/qtpositioning-examples.html) Reference[](https://doc.qt.io/qt-6/qtpositioning-index.html#reference "Direct link to this headline") ------------------------------------------------------------------------------------------------------ * [Qt Positioning C++ Classes](https://doc.qt.io/qt-6/qtpositioning-module.html) * [Qt Positioning QML Types](https://doc.qt.io/qt-6/qtpositioning-qmlmodule.html) Module Evolution[](https://doc.qt.io/qt-6/qtpositioning-index.html#module-evolution "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------- [Changes to Qt Positioning](https://doc.qt.io/qt-6/qtpositioning-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. Licenses[](https://doc.qt.io/qt-6/qtpositioning-index.html#licenses "Direct link to this headline") ---------------------------------------------------------------------------------------------------- Qt Positioning is available under commercial licenses from [The Qt Company](http://www.qt.io/about-us/) . In addition, it is available under free software licenses. Since Qt 5.4, these free software licenses are [GNU Lesser General Public License, version 3](https://www.gnu.org/licenses/lgpl-3.0.html) , or the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) . See [Qt Licensing](https://doc.qt.io/qt-6/licensing.html) for further details. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt Serial Bus | Qt 6.10.1 Search * [Qt 6.10](https://doc.qt.io/qt-6/index.html) * Qt Serial Bus On this page Qt Serial Bus ============= The Qt Serial Bus API provides classes and functions to access the various industrial serial buses and protocols, such as CAN, ModBus, and others. Getting Started[](https://doc.qt.io/qt-6/qtserialbus-index.html#getting-started "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------- To use the module with CMake, use the `find_package()` command to locate the needed module components in the `Qt6` package: find\_package(Qt6 COMPONENTS SerialBus REQUIRED) target\_link\_libraries(mytarget PRIVATE Qt6::SerialBus) To use the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file: QT +\= serialbus Supported Buses and Protocols[](https://doc.qt.io/qt-6/qtserialbus-index.html#supported-buses-and-protocols "Direct link to this headline") -------------------------------------------------------------------------------------------------------------------------------------------- * [Qt CAN Bus](https://doc.qt.io/qt-6/qtcanbus-backends.html) * [Qt Modbus](https://doc.qt.io/qt-6/qtmodbus-backends.html) API Reference[](https://doc.qt.io/qt-6/qtserialbus-index.html#api-reference "Direct link to this headline") ------------------------------------------------------------------------------------------------------------ These are links to the API reference materials. * [C++ Classes](https://doc.qt.io/qt-6/qtserialbus-module.html) Logging Categories[](https://doc.qt.io/qt-6/qtserialbus-index.html#logging-categories "Direct link to this headline") ---------------------------------------------------------------------------------------------------------------------- The [QtSerialBus](https://doc.qt.io/qt-6/qtserialbus-module.html) module exports the following [logging categories](https://doc.qt.io/qt-6/qloggingcategory.html#configuring-categories) : | Logging Category | Description | | --- | --- | | qt.canbus | Enables standard logging inside the [Qt CAN Bus](https://doc.qt.io/qt-6/qtcanbus-backends.html)
classes | | qt.canbus.plugins | Enables low level logging inside the [Qt CAN Bus](https://doc.qt.io/qt-6/qtcanbus-backends.html)
plugin classes. To set logging for a specific plugin, use "qt.canbus.plugins.pluginname". e.g. "qt.canbus.plugins.socketcan". "qt.canbus.plugins\*" affects all plugins. | | qt.modbus | Enables standard logging inside the [Qt Modbus](https://doc.qt.io/qt-6/qtmodbus-backends.html)
classes | | qt.modbus.lowlevel | Enables low level logging including individual packet content inside the [Qt Modbus](https://doc.qt.io/qt-6/qtmodbus-backends.html)
classes | Logging categories can be used to enable additional warning and debug output for [QtSerialBus](https://doc.qt.io/qt-6/qtserialbus-module.html) . More detailed information about logging can be found in [QLoggingCategory](https://doc.qt.io/qt-6/qloggingcategory.html) . A quick way to enable all [Qt Modbus](https://doc.qt.io/qt-6/qtmodbus-backends.html) logging is to add the following line to the main() function: [QLoggingCategory](https://doc.qt.io/qt-6/qloggingcategory.html) ::setFilterRules(QStringLiteral("qt.modbus\* = true")); Examples[](https://doc.qt.io/qt-6/qtserialbus-index.html#examples "Direct link to this headline") -------------------------------------------------------------------------------------------------- * [CAN Bus Manager example](https://doc.qt.io/qt-6/qtserialbus-can-example.html) * [Modbus Client example](https://doc.qt.io/qt-6/qtserialbus-modbus-client-example.html) * [Modbus Server example](https://doc.qt.io/qt-6/qtserialbus-modbus-server-example.html) * [Modbus Custom Command example](https://doc.qt.io/qt-6/qtserialbus-modbus-custom-example.html) Module Evolution[](https://doc.qt.io/qt-6/qtserialbus-index.html#module-evolution "Direct link to this headline") ------------------------------------------------------------------------------------------------------------------ [Changes to Qt SerialBus](https://doc.qt.io/qt-6/qtserialbus-changes-qt6.html) lists important changes in the module API and functionality that were done for the Qt 6 series of Qt. © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. --- # Qt 6.10 Search Qt 6.10 ======= Qt is a full development framework with tools designed to streamline the creation of applications and user interfaces for desktop, embedded, and mobile platforms. See [what's new in Qt 6.10](https://doc.qt.io/qt-6/whatsnew610.html) . Essentials[](https://doc.qt.io/qt-6/#essentials "Direct link to this headline") -------------------------------------------------------------------------------- [Qt Essentials](https://doc.qt.io/qt-6/qtmodules.html#qt-essentials) define the foundation of Qt on all platforms. * ### Qt Core Core non-graphical classes used by other modules. [](https://doc.qt.io/qt-6/qtcore-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt D-Bus Classes for inter-process communication over the D-Bus protocol. [](https://doc.qt.io/qt-6/qtdbus-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt GUI Base classes for graphical user interface (GUI) components. [](https://doc.qt.io/qt-6/qtgui-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Network Classes to make network programming easier and more portable. [](https://doc.qt.io/qt-6/qtnetwork-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Qml Classes for QML and JavaScript languages. [](https://doc.qt.io/qt-6/qtqml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick A declarative framework for building highly dynamic applications with custom UIs. [](https://doc.qt.io/qt-6/qtquick-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Controls Lightweight QML types for creating performant user interfaces for desktop, embedded, and mobile devices. [](https://doc.qt.io/qt-6/qtquickcontrols-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Dialogs Types for creating and interacting with system dialogs from a Qt Quick application. [](https://doc.qt.io/qt-6/qtquickdialogs-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Layouts Layouts are items that are used to arrange Qt Quick 2 based items in the user interface. [](https://doc.qt.io/qt-6/qtquicklayouts-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Test A unit test framework for QML applications, where the test cases are written as JavaScript functions. [](https://doc.qt.io/qt-6/qtquicktest-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Test Classes for unit testing Qt applications and libraries. [](https://doc.qt.io/qt-6/qttest-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Widgets Classes to extend Qt GUI with C++ widgets. [](https://doc.qt.io/qt-6/qtwidgets-index.html) [](https://doc.qt.io/qt-6/#) Add-ons and Extensions[](https://doc.qt.io/qt-6/#add-ons-and-extensions "Direct link to this headline") -------------------------------------------------------------------------------------------------------- Qt add-on and extension modules bring additional value for specific purposes. For more information, see [All Modules](https://doc.qt.io/qt-6/qtmodules.html) . * ### Active Qt Classes for applications which use ActiveX and COM (Windows only). [](https://doc.qt.io/qt-6/activeqt-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Bluetooth Provides access to Bluetooth hardware. [](https://doc.qt.io/qt-6/qtbluetooth-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt CoAP Implements the client side of CoAP defined by RFC 7252. [](https://doc.qt.io/qt-6/qtcoap-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Concurrent Classes for writing multi-threaded programs without using low-level threading primitives. [](https://doc.qt.io/qt-6/qtconcurrent-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Graphs Provides functionality for visualizing data in 3D as bar, scatter, and surface graphs, as well as 2D in area, bar, donut, line, pie, scatter, and spline graphs. [](https://doc.qt.io/qt-6/qtgraphs-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt GRPC Provides an ability to generate Qt-based classes from protobuf specifications used to communicate with gRPC® services. [](https://doc.qt.io/qt-6/qtgrpc-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Help Classes for integrating documentation into applications. [](https://doc.qt.io/qt-6/qthelp-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt HTTP Server A framework for embedding an HTTP server into a Qt application. [](https://doc.qt.io/qt-6/qthttpserver-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Image Formats Plugins for additional image formats: TIFF, MNG, TGA, WBMP. [](https://doc.qt.io/qt-6/qtimageformats-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Lottie Animation A QML API for rendering graphics and animations in JSON format, exported by the Bodymovin plugin for Adobe® After Effects. [](https://doc.qt.io/qt-6/qtlottieanimation-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt MQTT Provides an implementation of the MQTT protocol specification. [](https://doc.qt.io/qt-6/qtmqtt-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Multimedia A rich set of QML types and C++ classes to handle multimedia content. Also includes APIs to handle camera access. [](https://doc.qt.io/qt-6/qtmultimedia-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Network Authorization Provides support for OAuth-based authorization to online services. [](https://doc.qt.io/qt-6/qtnetworkauth-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt NFC Provides access to Near-Field communication (NFC) hardware. On desktop platforms NDEF access is only supported for Type 4 tags. [](https://doc.qt.io/qt-6/qtnfc-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt OPC UA Protocol for data modeling and exchange of data in industrial applications. [](https://doc.qt.io/qt-6/qtopcua-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt OpenGL C++ classes that make it easy to use OpenGL in Qt applications. A separate library (Qt OpenGL Widgets) provides a widget for rendering OpenGL graphics. [](https://doc.qt.io/qt-6/qtopengl-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Positioning Provides access to position, satellite info and area monitoring classes. [](https://doc.qt.io/qt-6/qtpositioning-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Print Support Classes to make printing easier and more portable. [](https://doc.qt.io/qt-6/qtprintsupport-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Protobuf Provides an ability to generate Qt-based classes from protobuf specifications. [](https://doc.qt.io/qt-6/qtprotobuf-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick 3D Provides a high-level API for creating 3D content or UIs based on Qt Quick. [](https://doc.qt.io/qt-6/qtquick3d-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick 3D Physics Qt Quick 3D Physics provides a high-level QML module adding physical simulation capabilities to Qt Quick 3D. [](https://doc.qt.io/qt-6/qtquick3dphysics-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Widgets Provides a C++ widget class for displaying a Qt Quick user interface. [](https://doc.qt.io/qt-6/qtquickwidgets-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Effects Provides QML types for applying one or more simple graphical effects to Qt Quick items. [](https://doc.qt.io/qt-6/qtquick-effects-qmlmodule.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Particles Provides QML types for particle effects. [](https://doc.qt.io/qt-6/qtquick-particles-qmlmodule.html) [](https://doc.qt.io/qt-6/#) * ### Qt Quick Timeline Enables keyframe-based animations and parameterization. [](https://doc.qt.io/qt-6/qtquicktimeline-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Remote Objects Provides an easy to use mechanism for sharing a QObject's API (Properties/Signals/Slots) between processes or devices. [](https://doc.qt.io/qt-6/qtremoteobjects-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SCXML Provides classes and tools for creating state machines from SCXML files and embedding them in applications. [](https://doc.qt.io/qt-6/qtscxml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Sensors Provides access to sensor hardware on Android, iOS, and Windows platforms. [](https://doc.qt.io/qt-6/qtsensors-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Serial Bus Provides access to serial industrial bus interfaces. Currently, the module supports the CAN bus and Modbus protocols. [](https://doc.qt.io/qt-6/qtserialbus-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Serial Port Provides classes to interact with hardware and virtual serial ports. [](https://doc.qt.io/qt-6/qtserialport-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Shader Tools Provides tools for the cross-platform Qt shader pipeline. These enable processing graphics and compute shaders to make them usable for Qt Quick and other components in the Qt ecosystem. [](https://doc.qt.io/qt-6/qtshadertools-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Spatial Audio Provides support for spatial audio. Create sound scenes in 3D space containing different sound sources and room related properties such as reverb. [](https://doc.qt.io/qt-6/qtspatialaudio-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SQL Classes for database integration using SQL. [](https://doc.qt.io/qt-6/qtsql-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt State Machine Provides classes for creating and executing state graphs. [](https://doc.qt.io/qt-6/qtstatemachine-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt SVG Classes for displaying the contents of SVG files. Supports a subset of the SVG 1.2 Tiny standard. A separate library (Qt SVG Widgets) provides support for rendering SVG files in a widget UI. [](https://doc.qt.io/qt-6/qtsvg-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt TextToSpeech Provides support for synthesizing speech from text and playing it as audio output. [](https://doc.qt.io/qt-6/qttexttospeech-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt UI Tools Classes for loading QWidget based forms created in Qt Widgets Designer dynamically, at runtime. [](https://doc.qt.io/qt-6/qtuitools-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Virtual Keyboard A framework for implementing different input methods as well as a QML virtual keyboard. Supports localized keyboard layouts and custom visual themes. [](https://doc.qt.io/qt-6/qtvirtualkeyboard-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt Wayland Compositor Provides a framework to develop a Wayland compositor on Linux and Boot to Qt targets. [](https://doc.qt.io/qt-6/qtwaylandcompositor-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebChannel Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients. [](https://doc.qt.io/qt-6/qtwebchannel-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebSockets Provides WebSocket communication compliant with RFC 6455. [](https://doc.qt.io/qt-6/qtwebsockets-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt WebView Displays web content in a QML application by using APIs native to the platform, without the need to include a full web browser stack. [](https://doc.qt.io/qt-6/qtwebview-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt XML Handling of XML in a Document Object Model (DOM) API. [](https://doc.qt.io/qt-6/qtxml-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt 5 Compatibility APIs: Graphical Effects Qt Graphical Effects module from Qt 5 provided for compatibility. [](https://doc.qt.io/qt-6/qtgraphicaleffects5-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt 5 Core Compatibility APIs Qt Core APIs that were in Qt 5 but not Qt 6. [](https://doc.qt.io/qt-6/qtcore5-index.html) [](https://doc.qt.io/qt-6/#) Qt extension modules: * ### Qt WebEngine Classes and functions for embedding web content in applications using the Chromium browser project. [](https://doc.qt.io/qt-6/qtwebengine-index.html) [](https://doc.qt.io/qt-6/#) * ### Qt PDF Classes and functions for rendering PDF documents on desktop platforms. [](https://doc.qt.io/qt-6/qtpdf-index.html) [](https://doc.qt.io/qt-6/#) Tools[](https://doc.qt.io/qt-6/#tools "Direct link to this headline") ---------------------------------------------------------------------- A cross-platform [integrated development environment](https://doc.qt.io/qtcreator/index.html) , design tools, and [more](https://doc.qt.io/qt-6/topics-app-development.html) . Licenses Used in Qt[](https://doc.qt.io/qt-6/#licenses-used-in-qt "Direct link to this headline") -------------------------------------------------------------------------------------------------- Qt Framework and tools are available under both open-source and commercial [licenses](https://doc.qt.io/qt-6/licensing.html) . The commercially licensed Qt contains additional functionality and productivity tools. For details, see [https://www.qt.io/download/](https://www.qt.io/download/) . © 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the [GNU Free Documentation License version 1.3](http://www.gnu.org/licenses/fdl.html) as published by the Free Software Foundation. Qt and respective logos are [trademarks](https://doc.qt.io/qt/trademarks.html) of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. ---