Getting Started Using the Qt IVI Generator

This guide explains how to get started with the Qt IVI Generator. The generator is used to generate source code from an IDL file. It supports multiple templates to select what kind of code should be generated.

The Qt IVI Generator can be found inside the bin folder of your Qt installation. If it is not available, please make sure all prerequisites listed in the qmake configuration summary are met. See Configuration for more information on how Qt IVI can be configured.


The generator takes an IDL file as input for generating its source code. The following code shows a minimal IDL file:

module my.idl 1.0

interface MyInterface {
    property int value;
    void increment();
    signal valueIncremented(int newValue);

The IDL pretty much self-explanatory: it defines a new module (namespace) my.idl in version 1.0. Inside there should be an interface called MyInterface. The interface provides a property storing a value and a function to increment and notify the user. The QFace IDL syntax page provides a more detailed documentation about the IDL.

Using the previously defined IDL file, the frontend template can be used to generate a library providing an implementation of MyInterface. The generated class will use the Dynamic backend System provided by Qt IVI for an abstraction of frontend and backend code.

The actual implementation of the class behavior is done inside a backend plugin. A very basic backend plugin can be generated by using the backend_simulator template. For more information how Qt locates and loads its plugins, please see here.

In Depth Walkthrough

For more in-depth information, the Qt IVI Generator Climate Example comes with a step by step documentation.

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