Для тех кто пишет расширения на 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
Cybersicurezza, nota Palazzo Chigi dopo vertice con #Baldoni e #Belloni: "Pur nella gravità dell'accaduto, in Italia nessuna istituzione o azienda primaria che opera in settori critici per la sicurezza nazionale è stata colpita"
@UltimoraPolitics
Cybersicurezza, convocato per domani vertice a Palazzo Chigi con il sottosegretario Alfredo #Mantovano, il direttore di ACN Roberto #Baldoni e la direttrice del DIS Elisabetta #Belloni per fare un primo bilancio dei danni dell'attacco ransomware di oggi
@UltimoraPolitics
Oggi sui giornali main stream si scopre la #tecnodestra e si teme #Musk per la sua influenza sulla politica
Di fatto da #Reagan la politica arretra davanti alla economia. La finanza domina. Biden ne era una marionetta
Ma le democrazie illiberali cercano di dirci che il problema è #Trump
Sono loro che hanno preparato il terreno
#ceciliasala libera!
Siamo felici
#Belloni purtroppo senza alcun senso dello Stato si dimette in un momento cruciale per il Governo
Una mossa opportunistica per restare fedele alla linea PD, di Biden contro ogni negoziato
Pessima mossa da parte di una ex diplomatica , che un partito personale fatto di relazioni pubbliche e giornalisti conniventi con i palazzi, candida a tutti i possibili incarichi
Non sono una elettrice della #Meloni
Ma in questo come in altri casi : chapeau alla sua abilità politica
La politica come progetto di trasformazione della società è moribonda.
È stata sostituita dalla gestione dell esistente : #governance
Ecco perchè candidano i burocrati di cui mai abbiamo conosciuto il pensiero politico a tutto come #Belloni
Alla #presidentedellarepubblica
o a essere #CommissarioUE
Il piano di pace in MO è sempre lo stesso
È una farsa
Se #Biden vuole il #Cessateilfuoco potrebbe ottenerlo domani
Come #Assange prigioniero del secolo affermava l' #occidente cerca guerre a bassa intensità in MO come in #Russia per gli interessi delle oligarchie armi, energetiche, finanziarie , iniezioni di liquidità per un sistema basato sul debito impazzito
Il resto #Meloni o #Schlein è intrattenimento
#Salvini o #Mattarella politichese
Intanto in bambini di #Gaza continuano a morire e anche gli #ucraini
La gente non arriva a fine mese, la #sanità e i beni pubblici distrutti, la #stampalibera morta
Di questo e di altro parliamo domani grazie a #Caracciolo e #Odifreddi
Vi aspetto libreria Eli via Somalia 50 A Roma
Ore 18