mafulechka
mafulechka8 июня 2020 г. 3:58

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

Компания 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), но разработчики были бы еще счастливее услышать, что, по-вашему мнению, необходимо или отсутствует.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
e
  • ehot
  • 31 марта 2024 г. 14:29

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

  • Результат:78баллов,
  • Очки рейтинга2
B

C++ - Тест 002. Константы

  • Результат:16баллов,
  • Очки рейтинга-10
B

C++ - Тест 001. Первая программа и типы данных

  • Результат:46баллов,
  • Очки рейтинга-6
Последние комментарии
k
kmssr8 февраля 2024 г. 18:43
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий Кононенко5 февраля 2024 г. 1:50
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25 декабря 2023 г. 10:30
Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJo25 декабря 2023 г. 8:38
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
Gvozdik18 декабря 2023 г. 21:01
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
a
a_vlasov14 апреля 2024 г. 6:41
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев
Павел Дорофеев14 апреля 2024 г. 2:35
QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
f
fastrex4 апреля 2024 г. 4:47
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
P
Pisych27 февраля 2023 г. 4:04
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
Alexandru Codreanu19 января 2024 г. 11:57
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…

Следите за нами в социальных сетях