Qt Languages

The Qt API is implemented in C++, and provides additional features for easier cross-platform development. Qt supports QML, its own declarative language built on top of JavaScript, and Qt Quick, a framework built on top of QML. It is designed to describe a program's user interface: what it looks like and how it behaves. As an alternative to using C++, bindings to Qt exist for Python as Qt for Python.


The Qt framework contains a comprehensive set of highly intuitive and modularized C++ library classes and is loaded with APIs to simplify your application development. Qt provides an intuitive C++ class library with a rich set of application build blocks for C++ development and adds the following features to C++:


Qt QML provides a framework for developing applications and libraries with the QML language. It defines and implements the language and engine infrastructure, and provides an API to enable and extend the QML language with custom types and integrate QML code with JavaScript and C++. The Qt QML module provides both a QML API and a C++ API.

The Qt QML module provides the language and infrastructure for QML applications. The Qt Quick module provides many visual components, model-view support, an animation framework, and much more for building user interfaces.

The QML language allows you to define trees of objects with a JSON-like syntax. It also allows you to implement logic in JavaScript.

JavaScript for QML Applications

JavaScript expressions allow QML code to contain application logic. Qt QML provides the framework for running JavaScript expressions in QML and from C++. It supports:

  • Quick development of both user-interfaces and application logic.
  • The JavaScript Host Environment provided by QML that can run valid JavaScript, as specified in the 7th edition of the standard, as well as some extensions from later standards.
  • The dynamic creation of objects from within JavaScript. This is useful to delay instantiation of objects until necessary, thereby improving application startup time.

Qt for Python

Qt for Python offers the official Python bindings for Qt, which enables you to use Python to write your Qt applications. The project has the following components:

  • PySide6: The official Python bindings for Qt 6
  • Shiboken6: A binding generator tool, to expose C++ code to Python
  • Tooling: To make application development easier with PySide6
  • Shiboken module: Provides utility functions for debugging

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