Introduction to Qt Bridges

Note: This project is under heavy development, and does not aim to support every Qt use case initially.

Project's goal and motivation

What if you could write Qt Quick applications backends in your favorite language without much Qt API?

This was the question that helped shape the project goal, and has been the motivation aspect of its development.

Depending of the language you are using, you might have encountered frameworks that force you to follow a specific idiom or structure that might feel unfamiliar, or strange to code. This has been an aspect to improve in the many Qt Language bindings projects, because you need to force the language to handle many Qt and C++ ideas.

Removing any trace of Qt in your code is impossible, but reducing the content is something that one can focus to achieve, and has been one of the main ideas of the project.

Why not full Qt bindings?

Although it has been proven that complete Qt bindings can play a crucial role in the ecosystem, being accepted as a professional approach to develop both commercial applications, and community based ones, it is important to note the amount of effort in order to fully expose every Qt module, with all their classes, enums, properties, methods, etc, is huge, and would require a multi year effort in order to officially add more languages to the Qt offering.

Scope and supported use cases

The initial scope of the project is to provide a simple way to expose data via a backend in a specific target language to a Qt Quick application.

This can be also understood as a simple way to feed QAbstractItemModel-derived models, in a more transparent way, by annotating classes that will contain both the data and the functionality when adding, removing, editing, etc.

Note: There are many QtQuick modules that contain C++ API, for the scope of this project, that API will not be available.

Getting started

Different programming languages have a different way to get started with new frameworks, Qt Bridges is no exception.

You do not need Qt Installed in your system in order to use Qt Bridges, because the dependencies will be included in each language package.

In order to build each bridge to a specific Qt version, refer to the language instructions as well.

Follow the instructions for your preferred language here:

Implementation details

QML private API for runtime configuration

Developer notes

Adding new languages

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