Qt Interface Framework

The Qt Interface Framework module provides both the tools and the core APIs, for you to implement Middleware APIs, Middleware Back ends, and Middleware Services. The Qt Interface Framework Generator provides a flexible way to define new APIs via an Interface Definition Language (IDL) and generate classes for use, from C++ and QML.

Qt Interface Framework consists of three types of building blocks:

  • The core module provides base classes and common code for all APIs created by you, the developer.
  • The user created API definitions like a climate API or a mediaplayer API. Each of these APIs is the second building block called Features, which define the API exposed to the application developer.
  • The last block consists of a back-end interface and one or more back ends implementing it to either connect to the underlying service or to a simulation of it.

Qt Interface Framework is built around a pattern that separates the feature and the back ends.

There can be multiple back ends per feature; the Core module provides support for easily finding the corresponding back end.

The following diagram illustrates the generic architecture in Qt Interface Framework: Middleware API, Middleware Back end, and Middleware Service.

"Qt Interface Framework Architecture"

This pattern of separation is necessary to accommodate the following use cases:

Early developmentThis is where the UI can rely on a feature with a basic back end implementation.
Testing and SimulationThis is where the back ends can be tested separately from the app and the app can be tested using a specialized testing back end.
Targets with different hardware configurationsThis is where certain parts of the system are represented by simulated back ends while others use a real hardware integration.
Dynamic servicesSituations when services are only available intermittently, with back ends that come and go over time.

Note: There is no compatibility guarantee for the autogenerated code. This means that even application code that uses the autogenerated code is only guaranteed to work with the Qt Interface Framework version it was developed against. We try to keep the API source compatible for as long as possible.

Overviews and Tutorials

The following are some key topics that provide more details on the Qt Interface Framework module:

Reference APIs

In addition to the tools and core APIs, the Qt Interface Framework module also provides an extendable set of reference APIs for automotive features. This module can be used to develop automotive applications and to provide automotive features to Qt-based applications in a structured manner. This reference API already contains some simulation back ends, which provide partially simulated behavior of a real middleware service.

Note: There is no compatibility guarantee for the reference APIs. As those are based on the Qt Interface Framework Generator, the same compatibility guarantee is applied to those. We try to keep the API source compatible for as long as possible.

Getting Started with the Qt Interface Framework Reference API

Reference

Licenses and Attributions

Qt Interface Framework is available under commercial licenses from The Qt Company. In addition, it is available under the GNU Lesser General Public License, version 3, or See Qt Licensing for further details.

An executable on Windows will potentially link against The QtEntryPoint Library. This library is available under commercial licenses and also under the BSD 3-clause "New" or "Revised" License.

Furthermore Qt Interface Framework potentially contains third party modules under the following permissive licenses:

QFace, version 2.0.8

MIT License

relocate_virtualenv, version 16.7.9

MIT License

taglib, version 1.12

Lesser GNU General Public License and Mozilla Public License

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