Для тех кто пишет расширения на 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
#Repost#Ministro#PoderPopular#ObrasPublicas@juan_luces Por instrucciones del Presidente de la República @nicolasmaduro nos encontramos en Moscú, Rusia, haciendo un recorrido por los principales monumentos para intercambiar experiencias que alimenten el proyecto que estamos ejecutando en la ciudad de Caracas con la construcción de un Monumento en honor a los 80 años de la victoria en la Gran Guerra Patria, despliegue donde también conversamos con el escultor de la Union Soviética Salavat Alexandrovich Sherbakov, quien nos brindará su apoyo en la ejecución de esta obra.
@nicolasmaduro
@delcyrodriguezv
@yvan.gilpinto
@camillafsaab
@jesussalazarvelasquez
@cancilleriave
https://x.com/SavinoBalzano/status/1869824403438972988?t=SlRhWhvtMS__pKbKfi0MjQ&s=19
Qual è il nome del peggior #Sindaco nella storia di #Roma? Si chiama #RobertoGualtieri.
Per carità, anche da #Ministro non è stato memorabile: in pochi lo ricordano, più che altro per una strimpellata in tv piuttosto deprimente.
Ciò detto, in pochi giorni si è superato: a proposito della sua amministrazione ha parlato di "miracoli di rapidità" e, a poche ore di distanza, pubblica un video nel quale inaugura una nuova grande opera, una ciclabile di meno di un chilometro (lo dice lui stesso) che collega Termini a La Sapienza, un tratto di strada che a piedi avrò percoso centinaia di volte in meno di dieci minuti. Una roba poco più che inutile.
Di contro, lunedì, per una commissione, ho dovuto percorrere in auto 13 km e, tra andare e tornare, sono stato alla guida la bellezza di tre ore.
La #Capitale cade a pezzi, letteralmente, e noi che la viviamo (e l'amiamo) abbiamo la merda fino al collo: ovvio che quando vedi certe pagliacciate ti incazzi e non poco.
Ancora però mi domando: tutti quelli che mettevano in croce Virginia Raggi dove minchia sono finiti? Giornali di #destra e di #sinistra, telegiornali che hanno aperto per mesi i titoli coi disastri capitolini del tempo, non avete proprio nulla da dire su Gualtieri? Niente niente?
La #democrazia, quanto ci piace.
Il #BattitoreLibero a #5Notizie, #RadioCusanoCampus
https://x.com/SavinoBalzano/status/1835959643073372567?t=kDws7UJorXNAG6zZnXt1Zg&s=19
Trovo incredibile che in queste ore qualcuno abbia voglia di parlare di attacco alla #magistratura. Ovviamente a tenere banco è ancora la vicenda di #Salvini e di #OpenArms. Per la verità sarebbe anche la vicenda di #Conte, il quale però ama riabbracciare i suoi ex ministri solo quando questi si chiamano #Speranza o giù di lì.
C'è chi sostiene che #MatteoSalvini preferisca parlare della bega giudiziaria, difendendosi peraltro dal processo piuttosto che nel processo, solo per distogliere l'attenzione dell'opinione pubblica dalle difficoltà sue e del #Governo.
Che su certe questioni ci siano delle difficoltà mi pare del tutto evidente, ma vorrei modestamente ricordare che non è stato lui ad attualizzare la questione: l'accusa ha chiesto nel processo 6 anni di reclusione. È a fronte di tale richiesta che ha reagito: non mi pare un dettaglio trascurabile.
E che si difenda anche dal processo mi pare sacrosanto: "anche", dal momento che nel processo si sta difendendo eccome; "sacrosanto", perché (come ho provato ad argomentare ieri e dunque non ci rientro) questo è un processo politico e rappresenta l'ennesimo gravissimo precedente di incursione della magistratura nel campo della discrezionalità politica.
È la magistratura ad attaccare la #politica, non il contrario (quantomeno in questo frangente).
C'è un altro aspetto che mi preme chiarire, dal momento che alcuni ieri polemizzavano, ricordandomi come «un #Ministro non sia al di sopra della legge e, dunque, se innocente sarà assolto». A parte il fatto che l'automatismo "innocenza - assoluzione" mi convince poco, vorrei sommessamente ricordare che anche l'azione penale perseguita dall'accusa non deve in alcun modo essere arbitraria o forzata. Vale a dire: non è che siccome hai la possibilità di ottenere l'assoluzione, allora i pubblici ministeri possono accusare chiunque gli passi a tiro senza alcun criterio o, peggio, ricorrendo a elementi che sono squisitamente politici.
Parlo in generale: abbiamo la minima idea di cosa possa voler dire subire un procedimento penale? subirlo, magari, nell'assoluta convinzione di essere totalmente innocenti? Ragioniamo per un attimo anche sui danni, materiali e morali, che possono derivare da un procedimento penale ingiusto.
Non solo quella del #magistrato giudicante è una funzione delicatissima. Chi #accusa, prima di puntare i dito con ferocia contro un cittadino, dovrebbe probabilmente pensarci cento volte perché il suo è un potere devastante, affidatogli dalla Costituzione perché lo eserciti con le dovute cautele, proprio in considerazione di quanto gravi possono essere le conseguenze di un operato inadeguato. Inadeguatezza (eventuale), peraltro, della quale i magistrati non sono praticamente mai chiamati a rispondere.