Qt Languages¶
An overview of programming languages that you can use to write Qt applications.
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 .
C++¶
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++:
A powerful mechanism for seamless object communication called signals and slots
Queryable and designable object properties
Powerful events and event filters
Contextual string translation for internationalization
Sophisticated interval-driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI
Hierarchical and queryable object trees that organize object ownership in a natural way
A dynamic cast that works across library boundaries
Support for integration of custom types into Qt metatype system
QML¶
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