The Qt In-Vehicle Infotainment (IVI) module provides both, the tools and the core APIs, for you to implement Middleware APIs, Middleware Backends, and Middlware Services. The Qt IVI 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 IVI is built around a pattern that separates the API exposed to the application developer, the so called feature, and the code that implements it, the backend. There can be multiple backends per feature; the Core module provides support for finding the corresponding backend in an easy-to-use way.

The following diagram illustrates the generic architecture in Qt IVI: Middleware API, Middleware Backend, and Middleware Service.

"Qt IVI Architecture"

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

  • Early development - where the UI can rely on a feature with a basic backend implementation.
  • Testing and Simulation - where the backends can be tested separately from the app and the app can be tested using a specialized testing backend.
  • Targets with different hardware configurations - where certain parts of the system are represented by simulated backends while others use a real hardware integration.
  • Dynamic services - when services are only available intermittently, with backends that come and go over time.

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

Reference APIs

In addition to the tools and core APIs, the Qt IVI 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 backends, which provide partially simulated behavior of a real middleware service.

Getting Started with the Qt IVI Reference API


Licenses and Attributions

Qt IVI is available under commercial Qt Automotive Suite licenses. In addition, it is available under the GNU Lesser General Public License, version 3, or See Qt Licensing for further details.

Executables on Windows potentially link against The qtmain Library. This library is available under commercial licenses, and in addition under the BSD 3-clause "New" or "Revised" License.

Furthermore Qt IVI potentially contains third party modules under following permissive licenses:

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