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 5.14.2.2. You can also get it via pip install pyside2==5.14.2.2.

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.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Card image cap
Pulsum Via

Project for travelers from EVILEG.

Go
Fornex

Let me recommend you a great European Fornex hosting.

Fornex has proven itself to be a stable host over the years.

For Django projects I recommend VPS hosting

Following the link you will receive a 5% discount on shared hosting services, dedicated servers, VPS and VPN

View Hosting
Share on social networks
Donate

The EVILEG project has switched to a non-commercial basis and will develop solely on the enthusiasm of the site creator, the enthusiasm of users, donations and the hosting referral system

Thank you for your support

Available ways to support the project

PayPal

PatreonYandex.MoneyMore

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4

C++ - Test 001. The first program and data types

  • Result:66points,
  • Rating points-1
GR

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

  • Result:90points,
  • Rating points8
Last comments

Qt/C++ - Lesson 061. Adding images to the application using the Drag And Drop method from the file manager

Доброго времени суток. А если нужно и изображение и текст? Что-то потерялся немного.... // Вместо отрисовки иконки и текста будем отрисовывать только одно изображение // с н…
AS

Qt/C++ - Lesson 004. QSqlTableModel – How to present the table from database?

error insert into TableExample " Количество параметров не совпадает" Я путь свой прописывала и даже бд удаляла, чтобы заново сделать, не работает. (всё остальное как у вас... Вроде ка…
i

Qt/C++ - Lesson 042. PopUp notification in the Gnome style using Qt

cialis powder comprare cialis online
LD

GameDev on Qt - Tutorial 1. Track mouse movement in QGraphicsScene

Вполне возможно, что ты не закинул graphicsView в дизайнере в виджет
LD

GameDev on Qt - Tutorial 1. Track mouse movement in QGraphicsScene

Кому интересно, поворот в slotTarget можно в одну строку организовать this->setRotation(90 + rotation() + qRadiansToDegrees(qAtan2(mapFromScene(point).y(), mapFromScene(point).x())));
Now discuss on the forum
M

Sorting the added QML elements in the ListModel

legal online pharmacy
  • Nomad
  • July 30, 2022, 5:42 a.m.

Как работать с HTMX?

Приветствую колеги. На днях наткнулся на вот это : https://htmx.org/ На офф сайте написанно вот такая фраза: htmx gives you access to AJAX, CSS Transitions, We…
h
  • harisr
  • July 25, 2022, 2:56 a.m.

QT - Native App Integration

Привет, у нас уже есть собственное приложение для Android. Можем ли мы интегрировать пользовательское представление QT в приложение со всем приложением QT внутри представления. Если да, ука…

Правильный запуск сервера на vps - Django

О я как то себе дома локальный сервер создавал. Вам же нужно просто сделать ручками конфигурацию системы. Настроить Nginx ну либо Apache (тут кому что нравится). Соответственно БД и всё остально…
o

Распознание объектов

Я к тому, что, возможно, софт уже есть.
About
Services
© EVILEG 2015-2022
Recommend hosting TIMEWEB