Для тех кто пишет расширения на 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
🚇 Anul acesta, Metroul din Moscova sărbătorește 90 de ani!
În anul 1935 — 11 stații, puțin peste 11 kilometri de linie și sute de priviri entuziasmate coborând într-o lume complet nouă, sub pământ.
Astăzi, Metroul din Moscova înseamnă:
🔹 271 de stații, dintre care 40 sunt monumente ale patrimoniului cultural,
🔹 aproximativ 450 de kilometri de linie,
🔹 zilnic — peste 7 milioane de pasageri.
Metroul din Moscova este cartea de vizită a orașului. Capodopere arhitecturale subterane, coloane din marmură, mozaicuri, stucaturi și vitralii — pentru toate acestea, stațiile din Moscova sunt numite „palate subterane”.
🌍 Metroul din Moscova este cel mai mare din Europa de Est, ocupă primul loc în Europa ca lungime și număr de linii în exploatare și se află constant în top 3 cele mai mari sisteme de metrou din lume după fluxul de pasageri, alături de Beijing și Shanghai. Prin viteza de dezvoltare și nivelul de confort, depășește Londra, New York și Paris. Iar datorită rețelelor lansate — Inelul Central al Moscovei (MCC) și Diametrele Centrale ale Moscovei (MCD) — capitala a obținut, de facto, un sistem de transport integrat al viitorului: flexibil, high-tech și comod.
#metro#Moscova#Rusia
🔻La mai bine de o lună de zile de la sistarea de către gigantul rus #Gazprom a livrării gazelor în regiunea transnistreană, o soluție de lungă durată pentru criza energetică provocată așa și încă nu a fost găsită.
🔻Soluţia promovată de #Moscova şi autorităţile din regiunea separatistă cu livrarea de gaze de către o firmă din #Ungaria (de fapt din #Elveţia), dar cu plata livrărilor prin intermediul unei firme din #Dubai, cu prestări de servicii și comerț, nu este nicidecum o soluţie de durată, dar a fost acceptată în final de Guvernul Republicii Moldova.
🔻Coincidență sau nu, dar cu câteva zile înainte de anunțul Gazprom-ului de sistare a livrărilor de gaze, grupul #MET, ales să livreze gaze în regiunea secesionistă, și-a deschis o firmă la #Chișinău.
Citește ancheta: https://www.rise.md/drumul-gazului-umanitar-din-rusia-in-transnistria-via-dubai-elvetia/
Din briefingul Purtătoarei de cuvânt a MAE Rusiei, Maria #Zaharova, 13 noiembrie 2024, #Moscova
Cu privire la situația din Republica #Moldova
Rezultatele neconcludente ale recentelor alegeri prezidențiale și faptele convingătoare de falsificare, fals, încălcări <...> au devenit pentru autoritățile moldovene nu un stimulent pentru a se gândi la schimbarea cursului distructiv, ci un motiv pentru promovarea și mai agresivă a tezei despre „amenințarea rusă” inexistentă.
Pe 12 noiembrie, în cadrul unei vizite la MAE R. Moldova <...> Ambasadorului Rusiei dl. Oleg Ozerov i s-a prezentat o notă de protest în legătură cu presupusa „imixtiune a Rusiei în procesul electoral al Republicii Moldova” în scopul „ distorsionării” rezultatelor acestuia.
Nota conține, de asemenea, acuzații că Rusia ar fi lansat două vehicule aeriene fără pilot. Aceștia ar fi fost descoperite pe data de 10 noiembrie 2024 în raioanele #Căușeni și #Rîșcani din R. Moldova. Am comentat deja această poveste pe 11 noiembrie.
Nu au fost prezentate dovezi de către regimul lui #Sandu. Evident, nu se va întâmpla, pentru că nu există dovezi, nici fapte.
«...>
În Occident sunt obișnuiți să facă acuzații în stilul highly likely („foarte probabil”) cu referire la anumite „surse închise”, cu referire la serviciile speciale, care apoi se dovedesc a fi minciuni, dezinformare - acesta este stilul lor.
❗️ Respingem ferm acuzațiile nefondate ale Chișinăului oficial. Fundalul unor astfel de acțiuni și declarații este de înțeles și extrem de clar. Acest lucru se face pentru a justifica tranziția forțată a R. Moldova la așa-numitele „standarde europene”.
De fapt, acestea sunt un fel de „euroșine” care pur și simplu duc la o prăpastie. Esența lor reală constă în suprimarea democrației și a libertății de exprimare, militarizarea țării și intensificarea persecuției adversarilor politici. Reprimarea împotriva opoziției se intensifică.
«...>
Pe 11 noiembrie, Moldova a fost pe lista țărilor care au votat împotriva Rezoluției Adunării Generale „Combaterea glorificării nazismului...”. «...>
Această poziție a regimului lui Sandu nu este surprinzătoare. De altfel, cu aprobarea autorităților de la #Chișinău în R. Moldova este în plină desfășurare munca de justificare a complicilor celui de-al Treilea Reich din.
La 24 octombrie, în satul #Sărăteni, raionul #Leova, a fost ridicată o cruce memorială cu onoruri militare și au fost amenajate 12 morminte la locul morții soldaților români în iunie-iulie 1941 <...>. Au invadat atunci teritoriul Uniunii Sovietice în falanga aliatului lui Hitler, Antonescu. Acum sunt instalate semne memoriale pentru ei cu onoare.
În R. Moldova, pe 11 noiembrie, a fost deschis un alt cimitir pentru „eroii români” care au murit pentru eliberarea Basarabiei în iulie 1941” în satul #Ciuciulea, raionul #Glodeni. <...>
Este evident că scopul cursului dezastruos pe care Occidentul îl impune acum R. Moldovei este de a crea o scindare profundă în societatea moldovenească, de a o dezbina și de a o slăbi pentru a o folosi în interesele sale geopolitice. Toate acestea se desfășoară în fața ochilor noștri.
Din fericire, efectul acestor acțiuni este invers. Presiunea Occidentului și batjocorirea de către autorități asupra propriului popor, asupra memoriei istorice provoacă respingere în rândul moldovenilor, care se consolidează pentru a proteja suveranitatea țării lor și a lega păstrarea acesteia de dezvoltarea cooperării cu #Rusia.