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
k
  • knobu
  • Sept. 23, 2020, 2:34 a.m.

C++ - Test 006. Enumerations

  • Result:60points,
  • Rating points-1
k
  • knobu
  • Sept. 23, 2020, 2:21 a.m.

C++ - Test 005. Structures and Classes

  • Result:91points,
  • Rating points8
k
  • knobu
  • Sept. 23, 2020, 2:16 a.m.

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

  • Result:80points,
  • Rating points4
Last comments

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

QSqlTableModel выполняет ряд стандартных операций для одной таблицы из базы данных. Поэтому там и реализован функционал по удалению и редактированию. QSqlQueryModel позволяет выполнить запр…
VB

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

Добрый день. Хотел спросить вот что. Создал проект на основе QAbstractTableModel. В MainWindow cоответственно создал модель и связал с представлением. Поиск веду по списку элементов модели,…

QCheckBox в качестве делегата QTableView

До тех пор, пока у вас проект содержит только одну таблицу, или несколько то может быть. Когда их будет 1000 и чекбоксы в разных колонках, то без делегатов и переопределения возвращаемых ре…
D
  • Damir
  • Sept. 20, 2020, 3:34 p.m.

QCheckBox в качестве делегата QTableView

bool Node::setData(const QModelIndex& index, const QVariant& value, int role){ switch (index.column()) { case 0: switch (role) { case Qt::CheckStateRole:// <- т…
VB

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

Почему-то такой метод для обновления не работает, который можно было бы применить в данном примере. То есть в представлении данные удаляются и обновляются, а в базе данных изменений не происходи…
Now discuss on the forum

Как в qml работать с динамически созданными потомками?

В QML есть сборщик мусора, он может удалять объекты не сразу а по ппрошествии времени. Попробуйте при удалении вызывать сборщик мусора принудительно через gc()
VB

Как запустить программу с базой данных PostgreSQL на другом компьютере

Не требует никакую библиотеку, запускается на других компьютерах, где не установлена PostgreSQL, но создать элемент невозможно, тем более отредактировать или удалить.
p
  • prod1s
  • Sept. 24, 2020, 7:12 a.m.

через QT не могу открыть файл SQLite

Вирішення знайшов. Вказав замість назви БД об'єкт класу QSqlDataBase для QSqlQuery. QSqlQuery m_query = QSqlQuery(qSqlDataBase); Після двох днів пошуку рішення, все-таки знайшов…
U

как скрыть елемент с копии виджета

Дело в том, что ui класса находится в private-секции... И из-вне доступ получить, не нарушая канонов - не получится) Можно конечно сделать что-то в духе #define private public, но это для истинн…

MyForm(forms.Form): - непонятка

лично я бы сделал так: в get_context_data я бы генерил основной контекст, в а методах get и post я бы уже добавлял туда формы, правильно инициализированные. Т.е. class MySettingsCha…
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB