As mentioned in the Qt 5.12 release blog we finally reached the point that we can announce the first release of Qt for Python for Qt 5.12. As it has become custom for the project and expected by Python developers, you can install the release via:
pip install PySide2
Note that Qt for Python is tightly bound to a particular Qt version and does not inherit the LTS (three years of support) flag from Qt 5.12. This means that this release is supported for one year starting on its release day. Our aim for the future is to release Qt for Python at the same time as the Qt version that Qt for Python is based on. Unfortunately, our release process has not reached this point quite yet.
To get started, take a look at the recent webinar ”Develop Your First Qt for Python Application’‘ on how to develop an application from scratch, based on Qt Widgets and different Python modules. You’ll also see some examples on how to continue developing with other Qt for Python components, such as QML and Shiboken.
PySide2 and Shiboken2
The release consists of two modules. The first module, PySide2, provides Python wrappers for most Qt APIs and the second module, Shiboken2, enables users to wrap their own C++ libraries and make them available to the Python world. Internally the PySide2 module depends on Shiboken.
As you might expect, dropping the Technology Preview (TP) label implies a certain compatibility guarantee. This compatibility statement is somewhat different for Qt for Python users compared to C++ guarantees though. It mostly relies on Qt’s source compatibility guarantee as we use a specific syntax to expose Qt’s C++ API. Any Python application written with Qt for Python 5.12 should continue to work with future releases. On the Shiboken side of things, we are still somewhat off target as we continue to carry the TP label.
When looking at the supported platforms, we currently support Python 2.7 and 3.5+ for the three major desktop platforms, with some limitations.
The Future of the Project
Our future roadmap is full of promising ideas and in January we’ll start sorting out the next steps, which will probably include:
- Simplifying the deployment of PySide2 applications,
- Provide a smoother interaction with other Python modules,
- Support other platform like embedded and mobile,
- and many others.
With this context in mind, we appreciate any input you may have for the next release. You can either post it here, in our IRC channel on Freenode (
#qt-pyside) or directly to our issue tracker under https://bugreports.qt.io .