The Qt OPC UA module implements a Qt API to interact with OPC UA servers on top of the open62541 library.

The QML API is still in development but are available as a technology preview. This means those parts are unstable, likely to change, and provided as a convenience only.

Using the Module


The QML types are available through the QtOpcUa import. To use the types, add the following import statement to your .qml file:

import QtOpcUa as QtOpcUa


Using the C++ API 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

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

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



Licenses and Attributions

Qt OPC UA is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses: The GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.

Furthermore, Qt OPC UA in Qt 6.8.0 may contain third-party modules under following permissive licenses:

Open62541, version 1.3.9

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

© 2024 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 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.