Для тех кто пишет расширения на PyQt/PySide для CG-софтов.
Когда я только начинал писать тулзы под Maya (тогда еще версия 2010-2011) мне приходилось ручками ставить PyQt4 под Maya. Даже написал мануалы по установке на своём сайте. Но потом стал доступен из коробки PySide и позже он обновится до PySide2. Для некоторых систем была поддержка PyQt5.
И как простому разработчику поддерживать этот зоопарк? Ведь хочется чтобы тул работал на любой версии (вы тоже делали модуль что-то типа import_qt.py?😁)
На помощь приходит проект Qt.py который поставил себе цель унифицировать использование Qt-биндингов вне зависимости от среды где запускается код. Те, кто давно пишут на Qt, скорее всего знают этот проект.
Он стал стандартом для CG-индустрии и используется в топовых студиях и проектах.
Qt․py помогает запускать один и тот же код на разных платформах с разными вариантами Qt-библиотек. Это может быть как интеграция в CG-софт, так и переносимость стендалонов между разными платформами с разными версиями Python.
Я решил рассказать о некоторых особенностях работы с этой библиотекой.
Сегодня о том, как установить и использовать Qt․py и что это вам даёт.
Установка
pip install Qt.py
Чтобы начать использовать Qt․py в коде достаточно заменить импорт вашего варианта Qt-биндинга на Qt․py
from [PySide|PyQt4|PySide2|PyQt5] import QtWidgets
=>
from Qt import QtWidgets
Теперь ваш код будет поддерживать любой вариант биндинга Qt в Python.
При этом не потребуется использовать if-else конструкции под разные версии. Все вызовы теперь одинаковы.
Всё что нужно сделать, это написать его по правилам PySide2. Именно эта версия была взята за основу.
Приоритет импорта такой:
1. PySide2
2. PyQt5
3. PySide
4. PyQt4
Что именно загрузилось можно посмотреть в переменной __binding__
>>> import Qt
>>> Qt.__binding__
'PySide2'
Приоритет имопрта можно изменить через переменные QT_PREFERRED_BINDING и QT_PREFERRED_BINDING_JSON. Причем под каждый проект оверрайды можно настраивать индивидеально.
#qt#libs
News: At last day of its mandate, #Tigray interim administration president meets #PM_Abiy to present annual report
On the last day of its mandate, President of the Tigray Interim Administration, Lt. Gen. #Tadesse Worede, met Prime Minister Abiy Ahmed this morning to present his annual report, according to a brief statement from the Prime Minister’s Office.
The statement shared by the PM Office said the meeting focused on receiving the report and discussing its findings, but did not disclose details of the content or outcomes of the discussion.
The meeting comes exactly one year after Lt. Gen. Tadesse was appointed on April 8, 2025, to lead the interim administration in the Tigray Region, replacing Getachew Reda. Prior to his appointment, Tadesse served as deputy president of the interim administration and head of its cabinet secretariat for peace and security.........
https://www.facebook.com/AddisstandardEng/posts/pfbid026T2zp6KVZ5rdVCzYZ2etaSMRY3C9WWRNS9efDwjLTJFpQoVASVTBXr7Xn4nfbWudl
#Ethiopia: Preparedness is vital’: #Tigray President warns against ‘living in defeat’ at Emperor Yohannes IV commemoration
During the 137th anniversary of the martyrdom of #Emperor_Yohannes IV, Lieutenant General #Tadesse Wereda, President of the Interim Administration of Tigray, delivered a sobering address, emphasizing that while peace remains the priority, the region must remain prepared for any eventuality.
The President acknowledged that this year’s remembrance comes at a precarious time. He described the current atmosphere not as one of comfort, but as one defined by "heavy political tension."
"We are carefully nurturing the relative peace we have in our hands," President Tadesse stated. "However, there are circumstances where forces beyond your capacity emerge, forcing you to make decisions you would not otherwise choose."
In a pointed message regarding the region's security & political stance, the President underscored that peaceful options must......
Read more: https://addisstandard.com/?p=55799
#Ethiopia: Interim President says dialogue under #Pretoria Agreement remains possible as #Tigray forces withdraw from Tselemti
Tigray advanced forces have withdrawn from #Tselemti in what the Tigray Interim Administration described as a confidence-building measure aimed at demonstrating readiness for dialogue and a peaceful resolution to the current tensions, Interim President Lt. General #Tadesse said.
“Our withdrawal shows clearly that we have no desire to return to war,” General Tadesse said, adding that “there is no question that can be answered by war, but by peace and negotiation.”
Speaking on Saturday to Tigrai Television, he stressed that the situation does not have to escalate into full-scale conflict, emphasizing that dialogue remains both possible and preferable.
The Interim President said Tigray’s core demands remain unchanged, centering on the return of internally displaced persons (#IDPs) and the restoration .....
Read more: https://addisstandard.com/?p=54888