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

Выпущен Qt для Python 5.15.0!

Content

Компания Qt рада объявить о выходе Qt для Python 5.15.0! 🎊🐍

Вы можете получить последнюю версию с помощью: pip install pyside2 или просто обновив текущую установку: pip install -U pyside2.

В то же время разработчики Qt хотели выпустить еще одну версию для пользователей, которые все еще используют 5.14, поэтому решили выпустить 5.14.2.2. Вы также можете получить его через pip install pyside2==5.14.2.2.

Разработчики Qt потратили большую часть времени на решение старой проблемы, связанной с потоками и Python, но все же у них было время поработать и над другими улучшениями, которые вы можете проверить в списке изменений. Теперь давайте немного поговорим об этом выпуске.

Потоки в PySide

Давным-давно, еще до официального выпуска, у разработчиков Qt был отчет об ошибке, указывающий на проблему при запуске Threads в приложении PySide. Они понимали, что это нужно решить, но никогда не ожидали, что это потребует совершенно нового подхода к взаимодействию с Python Global Interpreter Lock (GIL).

Потратив много времени, в попытке это выясненить, и, смешав разные подходы, которыми команда пыталась решить проблему, в итоге нашли правильное решение.
В двух словах, решение было найдено с помощью:

• Механизма кэширования, позволяющего избежать выделения GIL, когда у методов нет переопределения с помощью функции Python.
• уменьшения использования Py_BEGIN_ALLOW_THREAD и Py_BEGIN_ALLOW_THREAD,
• Не разрешать потоки по умолчанию во всех методах, но только при необходимости.

Вы можете прочитать больше об этом приключении здесь: PYSIDE-803, но в заключение, мы рады сообщить вам, что реактивность в потоке была значительно улучшена!

На этом история не закончилась, так как теперь с этим строгим подходом разработчикам Qt нужно было проявлять особую осторожность во многих «крайних случаях» (крайний случай связан с проблемой или ситуацией, которая возникает только за пределами нормальных рабочих параметров), одним из которых является PYSIDE-813, из которого разработчики узнали, что CPython function PyDict_GetItem работает с состоянием потока, чтобы поддерживать переменные глобальных ошибок, но что более важно, нашли состояние гонки, которое произошло в диспетчере сигналов.

Эти исправления были в 5.14, и именно поэтому компания Qt хотела включить последние открытия и исправления в две новые версии поверх 5.14.2.

Коммерческое предложение

Когда разработчики Qt не были заняты выяснением проблем GIL и Threading в PySide, они уделили много времени прослушиванию запросов от клиентов Qt, которые хотели использовать некоторые модули из Qt для автоматизации с Python. Поэтому компания Qt рада объявить, что 5.15.0 - это первая версия Qt для Python с коммерческими дополнениями:

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

Коммерческие клиенты будут получать Python Packages (wheels) не от PyPi , что позволяет вам просто набрать pip install pyside2, а по внутренней ссылке для скачивания. После загрузки пакетов (packages) можно будет установить файлы, выполнив следующие команды:

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

Помните, что сюда не входит Shiboken Generator, инструмент создания привязок, поскольку для установки требуются дополнительные шаги.

Приглашение сообщества

Существует множество способов создания графических пользовательских интерфейсов (Graphical User Interfaces) с использованием Python, но компания Qt видит значительный прирост пользовательской базы, поэтому твердо верит, что это самая важная часть проекта.

Компания Qt присоединились к мероприятию Hacktoberfest в Берлине, где люди решили помочь разработчикам Qt перенести пару примеров с C++ на Python. Компания Qt очень благодарны за это.

KDAB являясь партнером компании Qt также внес свой вклад в Qt для Python, поэтому разработчикам Qt удалось улучшить модуль благодаря взаимодействию с ними.

Когда пользователи хотят начать с вкладов, компания Qt старается помочь им по своим различных каналах связи. В качестве примера, теперь у компании есть доступ к QtSerialPort в PySide, благодаря Андреасу, внешнему участнику, который нуждался в модуле, и решил внести его в проект.

И последнее, но не менее важное: компания Qt хотчет поблагодарить своих участников, которые активно помогают другим пользователям в Mailing list, IRC, Matrix, Gitter, Keybase и Telegram.

Что дальше?

Компания Qt разработала Qt 5.15 с учетом Qt6, и пытается сосредоточиться на том, как улучшить текущее состояние модуля.
Документация: фрагменты кода C++, отсутствующие примеры, ошибки аргументов и т. д. - вот общие проблемы, с которыми разработчики Qt столкнулись в сообществе, и они постепенно пытаются улучшить текущую ситуацию. Но компания готовит руководства для людей, которые помогут им улучшить текущее состояние документов.

Примеры и учебные пособия: после Qt Virtual Tech Con 2020 многие начали спрашивать больше примеров и возможность проводить более длительные занятия для описания наиболее популярных случаев. Для этого компания Qt планирует новые события и материалы, связанные с тем, как смешивать C++ и Python, и многое другое.

Shiboken: Помимо высокого спроса на учебники и другие примеры, компания концентрирует свои усилия на корректировке текущего поведения в отношении Qt6. Уже начали делать «уборку дома» в своем инструменте генератора привязок. Разработчики Qt хотели бы услышать от вас, чего не хватает. Что вам нужно, связанное с Shiboken?

PySide: Улучшение коммерческого предложения даст компании Qt возможность получать отзывы от своих клиентов, которые будут использовать различные сценарии коммерческих приложений, что принесет на стол новые варианты использования, из которых разработчики смогут улучшить модуль.

Привет всем проектам OSS, основанным на PySide, у компании Qt был прямой контакт с ними, чтобы расставить приоритеты по ошибкам и добавить новые специальные функции для модуля.

Компания Qt делает все возможное, чтобы донести до своих пользователей все возможности Qt6 (описанные в PYSIDE-904), но разработчики были бы еще счастливее услышать, что, по-вашему мнению, необходимо или отсутствует.

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
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
VS

C++ - Тест 003. Условия и циклы

  • Result:14points,
  • Rating points-10
VS

C++ - Тест 003. Условия и циклы

  • Result:14points,
  • Rating points-10
IP

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

  • Result:10points,
  • Rating points-10
Last comments
A
  • Andrey
  • April 28, 2021, 1:25 a.m.

Django - Tutorial 036. How to add authentication through social networks. VKontakte

после того как дам разрешение для просмотра моего емайл, вот такая ошибка: AuthForbidden at /social-auth/complete/vk-oauth2/ Your credentials aren't allowed Вот сетингс: SOC…
DV

Qt/C++ - Lesson 051. QMediaPlayer – simple audio player

Добрый вечер. Хотел бы получить консультацию по работе с проектом на Mac OS. Открыл проект в QT и собрал его. Проблема в том, что он не воспроизводит треки и их названия зацикленно мелькают в по…
SS

Как соответствовать новым требованиям Google Play

Добрый день. Спасибо вам огромное за вашу статью! только начинаю изучать QT под Андроид 4 дня потратил на то чтобы подобрать версию QT которая наконец то скомпилирует мне на windo…
YA

PyQt5 - Tutorial 009. Using QThread with MoveToThread

Hello. Let's say I want to send some variables to "run" define. How can we do that? I modified your code, I tried something like below, but the GUI is frozen that way. I could not be able to und…
R

Распознавание изображений на Python с помощью TensorFlow и Keras

почему то вместо 50000 обрабатывает по 782 картинки кажду. эпоху
Now discuss on the forum

Потеря данных в сигнал/слот

вопрос решен
M

Qt/QML/Android(navigation button) - Стандартные клавиши навигации Андроид

Здравствуйте, пытаюсь заставить работать стандартную андроид-клавишу "назад", пытался разными способоами, они приведены в закомментированном коде. В том числе использовал https://evileg.com/ru/f…
M

Как включить OpenGL в Adnroid эмуляторе QtCreator

Здравствуйте, у меня работают виртуальные машины с Android, но только в дефолтной был включен OpenGL. Потом я удалил дефолтную, создал новые, а в них OpenGL отключен. Справа на втором скриншоте …

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.

qml зажатая кнопка мыши в одной MouseArea и сигналы мыши из другой MouseArea

добрый, вы не пробовали отслеживать область видимости мышки через: _mouseArea.containsMouse и когда мышка будет в другой зоне видимости обрабатывать ее состояния?
About
Services
© EVILEG 2015-2021
Recommend hosting TIMEWEB