mafulechka
mafulechka08 червня 2020 р. 03: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 функція 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 хостинг.

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
d
  • dsfs
  • 26 квітня 2024 р. 11:56

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80бали,
  • Рейтинг балів4
d
  • dsfs
  • 26 квітня 2024 р. 11:45

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

  • Результат:50бали,
  • Рейтинг балів-4
d
  • dsfs
  • 26 квітня 2024 р. 11:35

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

  • Результат:73бали,
  • Рейтинг балів1
Останні коментарі
k
kmssr09 лютого 2024 р. 02:43
Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий Кононенко05 лютого 2024 р. 09:50
Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25 грудня 2023 р. 18:30
Boost - статичне зв&#39;язування в проекті CMake під Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJo25 грудня 2023 р. 16:38
Boost - статичне зв&#39;язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
Gvozdik19 грудня 2023 р. 05:01
Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Тепер обговоріть на форумі
Evgenii Legotckoi
Evgenii Legotckoi02 травня 2024 р. 21:07
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
IscanderChe
IscanderChe30 квітня 2024 р. 11:22
Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…
G
Gar22 квітня 2024 р. 12:46
Clipboard Как скопировать окно целиком в clipb?
Павел Дорофеев
Павел Дорофеев14 квітня 2024 р. 09:35
QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
f
fastrex04 квітня 2024 р. 11:47
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

Слідкуйте за нами в соціальних мережах