Qt for Python
Qt for Python
The Qt for Python project aims to provide a complete port of the PySide module to Qt. The development started on GitHub in May 2015. The project managed to port PySide to Qt 5.3, 5.4 & 5.5. During April 2016 The Qt Company decided to properly support the port (see details ).
The module was released mid June 2018 as a Technical Preview (supporting Qt 5.11), and it was officially released without the Technical Preview tag, in December 2018 for Qt 5.12. In December 2020, the module was released for Qt6, which is the latest available version, which has the following differences:
- It doesn't support Python 2.7,
- Dropped support for Python 3.5, keeping 3.6+ only until PySide 6.3
- PySide 6.4 is the first version that supports Python 3.7+
This wiki page tracks the progress of the Qt for Python project development and provides further information concerning the effort.
Qt for Python is available under LGPLv3/GPLv2 and commercial license for the following platforms:
|
|
Get PySide6 via pip by running: pip install pyside6
What does it look like?
Code | Application |
---|---|
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("Hello World", alignment=Qt.Alignment.AlignCenter)
label.show()
sys.exit(app.exec())
|
More examples can be found in the project's repository inside the examples directory.
Python compatibility matrix
2.7 | 3.5 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | |
---|---|---|---|---|---|---|---|---|---|---|
5.15.0 | o | o | o | o | o | x | x | x | x | x |
5.15.1-7 | o | o | o | o | o | o | x | x | x | x |
5.15.8 | o | o | o | o | o | o | o | x | x | x |
5.15.9-10 | x | o | o | o | o | o | o | x | x | x |
5.15.11-15 | x | x | o | o | o | o | o | o | x | x |
6.0.x | x | x | o | o | o | o | x | x | x | x |
6.1.x | x | x | o | o | o | o | x | x | x | x |
6.2.x | x | x | o | o | o | o | o | x | x | x |
6.3.x | x | x | o | o | o | o | o | x | x | x |
6.4.x | x | x | x | o | o | o | o | o | x | x |
6.5.x | x | x | x | o | o | o | o | o | x | x |
6.6.x | x | x | x | x | o | o | o | o | o | x |
6.7.x | x | x | x | x | x | o | o | o | o | x |
6.8.x | x | x | x | x | x | o | o | o | o | o |
Getting Started
- Refer to the official documentation over the wiki for guides on getting started, tutorials, and more!.
- Getting started | wiki: download, build and install instructions.
- Porting docs | wiki: Porting an existing Qt/C++ application to Qt/Python the porting process.
- Tutorials | wiki: get started developing PySide applications.
- Shiboken | wiki: general information about the Python binding generator.
- Development: Getting started: guidelines to start contributing to the project.
- Considerations and known issues
- Reporting Bugs: report any issue related PySide6 or Shiboken6.
- Git repository (Code review) (dev branch is the branch currently worked on for PySide6) and PySide6 open patches
Community
The following chat platforms are connected via a bridge, so independent of the one you join, you will get the messages from the other ones.
- Official IRC channel on Libera.chat #qt-pyside
- Gitter: gitter.im/PySide/pyside2 (even if the url contains 'pyside2' it includes 'pyside6' discussion as well)
- Matrix/Riot: #qt-pyside:kde.org
- Telegram Group: Qt for Python
Development Status
- Development Notes by date: the summary of the development progress.
- Qt for Python Development Progress Notes The most current view of the progress can be found in Jira: Unresolved issues and All issues (including resolved). The second link is useful to monitor the progress of the backlog. The best way to achieve this is to sort the list by the "Updated" column. Larger backlog/feature items are filed as "User Stories" in Jira.
- Missing PySide6 bindings: the list of the current missing bindings.
Contributing to the Qt for Python Wiki
This Wiki is a community area where you can easily contribute, and which may contain rapidly changing information. Please put any wiki pages related to Qt for Python into the "QtForPython" category by adding the following text to the top of the page: [[Category:Qt for Python]]
When creating a new wiki page, please start the name with the prefix "Qt_for_Python/", so all the wiki page names will have the same structure and breadcrumbs are generated for easier navigation.