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 хостинг.
Поддержать автора Donate

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Card image cap
Pulsum Via

Проект для путешественников от EVILEG.

Перейти
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
Поделиться в социальных сетях
Donate

Проект EVILEG перешёл на некоммерческую основу и будет развиваться исключительно на энтузиазме создателя сайта, энтузиазме пользователей, пожертвованиях и реферальной системе хостинга

Спасибо за вашу поддержку

Доступные способы поддержки проекта

PayPal

PatreonYooMoneyПодробнее
s

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

  • Результат:50баллов,
  • Очки рейтинга-4
s

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

  • Результат:66баллов,
  • Очки рейтинга-1
r

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

  • Результат:58баллов,
  • Очки рейтинга-2
Последние комментарии

Qt/C++ - Урок 061. Добавление изображений в приложение методом Drag And Drop из файлового менеджера

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

Qt/C++ - Урок 004. QSqlTableModel или Как представить таблицу из БД в Qt?

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

GameDev на Qt - Урок 1. Отслеживание перемещения мыши в QGraphicsScene

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

GameDev на Qt - Урок 1. Отслеживание перемещения мыши в QGraphicsScene

Кому интересно, поворот в slotTarget можно в одну строку организовать this->setRotation(90 + rotation() + qRadiansToDegrees(qAtan2(mapFromScene(point).y(), mapFromScene(point).x())));
Сейчас обсуждают на форуме
K

Sorting the added QML elements in the ListModel

buy accutane online forum https://isotretinoinxp.top
  • Nomad
  • 30 июля 2022 г. 5:42

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

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

QT - Native App Integration

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

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

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

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

Я к тому, что, возможно, софт уже есть.
О нас
Услуги
© EVILEG 2015-2022
Рекомендует хостинг TIMEWEB