mafulechkaJune 8, 2020, 3:58 a.m.

Qt for Python 5.15.0 has been released!

Qt is happy to announce Qt for Python 5.15.0! 🎊🐍

You can get the latest version with: pip install pyside2 or simply upgrade your current installation: pip install -U pyside2.

At the same time, the Qt developers wanted to release another version for users who are still using 5.14, so they decided to release You can also get it via pip install pyside2==

The Qt developers spent most of their time fixing the old problem with threads and Python, but they still had time to work on other improvements as well, which you can check out in the changelog. Now let's talk a little about this release.

Streams in PySide

A long time ago, even before the official release, the Qt developers had a bug report indicating a problem when starting Threads in a PySide application. They understood that this needed to be addressed, but they never expected that it would require a completely new approach to interacting with the Python Global Interpreter Lock (GIL).

After spending a lot of time trying to figure this out, and mixing different approaches that the team tried to solve the problem, they eventually found the right solution.
In a nutshell, the solution was found with:

• A caching mechanism to avoid GIL allocation when methods are not overridden with a Python function.
• reducing the use of Py_BEGIN_ALLOW_THREAD and Py_BEGIN_ALLOW_THREAD,
• Don't allow threads by default in all methods, but only when necessary.

You can read more about this adventure here: PYSIDE-803, but in conclusion, we are happy to tell you that streaming reactivity has been greatly improved!

The story didn't end there, as now with this strict approach, Qt developers had to take extra care in many "edge cases" (an edge case is related to a problem or situation that only occurs outside of normal operating parameters), one of which is PYSIDE -813, from which the developers learned that the CPython function PyDict_GetItem works with thread state to support global error variables, but more importantly found a race condition that happened in the signal manager.

These fixes were in 5.14, which is why Qt wanted to include the latest discoveries and fixes in two new releases on top of 5.14.2.

Commercial offer

When the Qt developers weren't busy figuring out the GIL and Threading issues in PySide, they spent a lot of time listening to requests from Qt clients who wanted to use some modules from Qt to automate with Python. Therefore, the Qt company is pleased to announce that 5.15.0 is the first version of Qt for Python with commercial additions:

• Qt CoAP,
• Qt MQTT и
• Qt OPC UA.

Commercial customers will receive Python Packages (wheels) not from PyPi , which allows you to simply type pip install pyside2, but from an internal download link. Once the packages are downloaded, you can install the files by running the following commands:

pip install shiboken2-5.15.0.commercial-5.15.0-cp35.cp36.cp37.cp38-none-win_amd64.whl
pip install PySide2-5.15.0.commercial-5.15.0-cp35.cp36.cp37.cp38-none-win_amd64.whl

Please note that this does not include Shiboken Generator, a binding tool, as installation requires additional steps.

Community invitation

There are many ways to create Graphical User Interfaces using Python, but Qt sees a significant increase in the user base, so they firmly believe that this is the most important part of the project.

The Qt company joined the Hacktoberfest event in Berlin, where people decided to help the Qt developers port a couple of examples from C ++ to Python. The Qt company is very grateful for this.

KDAB, being a partner of the Qt company, also contributed to Qt for Python, so the Qt developers were able to improve the module through interaction with them.

When users want to start with contributions, Qt tries to help them through its various communication channels. As an example, the company now has access to QtSerialPort in PySide thanks to Andreas, an external contributor who needed the module and decided to contribute it to the project.

Last but not least, the Qt company would like to thank its contributors who are actively helping other users on the Mailing list, IRC, Matrix, Gitter, Keybase and Telegram.

What's next?

Qt has developed Qt 5.15 with Qt6 in mind, and is trying to focus on how to improve the current state of the module.
Documentation: C++ code snippets, missing examples, argument errors, etc. are common problems that the Qt developers have encountered in the community, and they are gradually trying to improve the current situation. But the company is preparing guides for people to help them improve the current state of the documents.

Examples and Tutorials: After Qt Virtual Tech Con 2020, many people started asking for more examples and the opportunity to run longer sessions to describe the most popular cases. To do this, Qt is planning new events and materials related to how to mix C++ and Python, and much more.

Shiboken: In addition to the high demand for tutorials and other examples, the company is focusing its efforts on correcting the current behavior regarding Qt6. Have already started doing "house cleaning" in their binding generator tool. The Qt developers would like to hear from you what is missing. What do you need related to Shiboken?

PySide: The enhancement of the commercial offering will give Qt the opportunity to receive feedback from its customers who will be using different commercial application scenarios, bringing new use cases to the table from which developers can improve the module.

Hello to all OSS projects based on PySide, Qt has been in direct contact with them to prioritize bugs and add new module-specific features.

Qt is doing its best to bring all the features of Qt6 (described in PYSIDE-904) to its users, but developers would be even happier to hear what you think is needed or missing.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!


Only authorized users can post comments.
Please, Log in or Sign up

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:30points,
  • Rating points-10

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:80points,
  • Rating points4

C++ - Test 005. Structures and Classes

  • Result:50points,
  • Rating points-4
Last comments
kmssrFeb. 9, 2024, 2:43 a.m.
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVADec. 25, 2023, 6:30 p.m.
Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
JonnyJoDec. 25, 2023, 4:38 p.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
GvozdikDec. 19, 2023, 5:01 a.m.
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
Alexandru CodreanuJan. 19, 2024, 7:57 p.m.
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
BlinCTDec. 27, 2023, 4:57 p.m.
Растягивать Image на парент по высоте Ну и само собою дял включения scrollbar надо чтобы был Flickable. Так что выходит как то так Flickable{ id: root anchors.fill: parent clip: true property url linkFile p…
ДмитрийJan. 10, 2024, 12:18 p.m.
Qt Creator загружает всю оперативную память Проблема решена. Удалось разобраться с помощью утилиты strace. Запустил ее: strace ./qtcreator Начал выводиться весь лог работы креатора. В один момент он начал считывать фай…
Evgenii Legotckoi
Evgenii LegotckoiDec. 12, 2023, 2:48 p.m.
Побуквенное сравнение двух строк Добрый день. Там случайно не высылается этот сигнал textChanged ещё и при форматировани текста? Если решиать в лоб, то можно просто отключать сигнал/слотовое соединение внутри слота и …

Follow us in social networks