Qt for Automation Overview

Components

Qt for Automation includes several components built on Qt and the Qt Creator integrated development environment.

Qt

Cross-platform Qt development libraries and core tools are developed through an open-source collaboration model. Qt is a full development framework designed to streamline the creation of applications and user interfaces for desktop, embedded, and mobile platforms.

The Qt libraries provide high-level APIs for a large variety of both non-GUI and GUI related functionality. For UI creation, Qt provides a number of approaches: traditional C++, declarative UI design with Qt Quick or HTML5/hybrid user interfaces with the Qt WebEngine module.

For an overview of Qt libraries see the Qt reference documentation.

Qt modules that are especially useful for automation:

  • Qt Virtual Keyboard - complete virtual keyboard solution with word-prediction and multiple languages supported.
  • Qt Quick Controls 2 - provides a set of controls for building complete user interfaces in Qt Quick.
  • Qt Quick Compiler - enables compiling .qml source files into application binaries, improving load times and security for code assets.
  • Qt WebEngine - provides a web browser engine based on the Chromium project.
  • Qt Serial Bus - access various industrial serial buses and protocols such as ModBus.
  • Qt Quick WebGL Streaming Plugin - allows running Qt Quick applications remotely in a WebGL-enabled browser.

Development Environment

The development environment in Qt for Automation is built around Qt Creator.

Qt Configuration Tool

The Qt Configuration Tool allows browsing and selecting features that are included in the Qt build configuration, making it easy to optimize Qt libraries for minimal footprint, performance and start-up time.

Automation APIs

Qt for Automation comes with additional modules for machine-to-machine communication and building automation:

Qt CoAP

CoAP(Constrained Application Protocol) is a machine-to-machine (M2M) web transfer protocol for use with constrained nodes and 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.

Qt CoAP implements the client side of CoAP defined by RFC 7252. Generally, CoAP is designed to use datagram-oriented transport such as UDP, and therefore the current implementation of the transport is based on UDP. However, it is also possible to implement custom transports based on TCP, WebSocket, and so on.

Qt MQTT

MQTT (Message Queue Telemetry Transport) is an extremely lightweight machine-to-machine (M2M) connectivity protocol utilizing the publish-and-subscribe paradigm, and is suitable for carrying telemetry data with minimal overhead.

Qt MQTT provides a standard-compliant implementation of the MQTT protocol specification. It enables applications to act as telemetry displays and devices to publish telemetry data.

Qt KNX

KNX is a standard for controlling home and building management equipment, such as lighting, blinds and shutters, security systems, heating and energy management, and more.

Qt KNX implements the client side of a connection between a client and a KNXnet/IP server. This connection enables sending messages to the KNX bus and controlling the functionalities of the KNX devices. Only local device management procedures and KNX application services working with group addressing are fully supported.

Qt OPC UA

OPC UA is a protocol for data modelling and exchange of data in industrial applications.

Qt OPC UA provides a means to interact with OPC UA servers on top of third-party OPC UA stacks.

Deployment

Device deployment can be done directly from the Qt Creator IDE to a device connected via USB or local area network, or to an emulator running the same full software stack as the devices.

As with any Qt application, the same project can be deployed to desktop or mobile targets as well.

© 2019 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.