Для тех кто пишет расширения на 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
#gerb#davlat_ramzi
2-iyul - O‘zbekiston Respublikasi Davlat Gerbi qabul qilingan kun.
Davlat gerbi haqida ma'lumot
📣Bizni ijtimoiy tarmoqlarda kuzating!
Web-sayt | Telegram | Facebook | You Tube
#Europa
La #Bulgaria si è opposta alle trattative in corso per l’ingresso della #MacedoniaDelNord nell'#UE, bloccando di fatto l’inizio dei colloqui per l’adesione del piccolo paese balcanico. La ministra degli Esteri Ekaterina #Zaharieva (🇧🇬#GERB🇧🇬|EPP) ha detto che la Bulgaria non può sostenere per ora l’inizio dei negoziati di adesione del paese balcanico a causa di controversie aperte sulla storia e sulla lingua dei due paesi.
@NewsDalMondoo
#Sondaggi
#Bulgaria🇧🇬
#Parlamentari
Sondaggio di Alpha Research.
Data: 19-26 marzo 2026.
Campione: 1.000 persone.
🟩 Bulgaria Progressista (#PB|Centro-sinistra populista): 30,8%
🟦 Cittadini per lo sviluppo europeo - Unione delle forze democratiche (#GERB|PPE; #SDS|PPE): 21,2%
🟦 Continuiamo il cambiamento - Bulgaria Democratica (#PP|RE; #DB|PPE): 11,1%
🟦 Movimento per i diritti e le libertà (#DPS|RE): 9,8%
🟧 Rinascita (#Vazrazhdane|ESN): 6,9%
🟥 Partito Socialista Bulgaro - Sinistra Unita (#BSP|S&D): 3,9%
⬛️ Morale, Unità, Onore (#MECh|Estrema destra): 3,0%
Altri: 13,3%
@TuttoElezioni
#Sondaggi
#Bulgaria🇧🇬
#Parlamentari
Sondaggio di MarketLinks.
Data: 17-21 marzo 2026.
Campione: 1.008 persone.
🟩 Bulgaria Progressista (#PB|Centro-sinistra populista): 29,1%
🟦 Cittadini per lo sviluppo europeo - Unione delle forze democratiche (#GERB|PPE; #SDS|PPE): 22,2%
🟦 Continuiamo il cambiamento - Bulgaria Democratica (#PP|RE; #DB|PPE): 13,3%
🟦 Movimento per i diritti e le libertà (#DPS|RE): 10,5%
🟧 Rinascita (#Vazrazhdane|ESN): 5,5%
🟥 Partito Socialista Bulgaro - Sinistra Unita (#BSP|S&D): 3,7%
⬛️ Morale, Unità, Onore (#MECh|Estrema destra): 3,2%
Altri: 12,5%
@TuttoElezioni
#Sondaggi
#Bulgaria🇧🇬
#Parlamentari
Sondaggio di Trend.
Data: 13-16 aprile 2026.
Campione: 1.004 persone.
Margine di errore: ±3,1%.
🟩 Bulgaria Progressista (#PB|Centro-sinistra populista): 33,2%
🟦 Cittadini per lo sviluppo europeo - Unione delle forze democratiche (#GERB|PPE; #SDS|PPE): 19,1%
🟦 Continuiamo il cambiamento - Bulgaria Democratica (#PP|RE; #DB|PPE): 11,2%
🟦 Movimento per i diritti e le libertà (#DPS|RE): 10,2%
🟧 Rinascita (#Vazrazhdane|ESN): 7,1%
🟥 Partito Socialista Bulgaro - Sinistra Unita (#BSP|S&D): 4,0%
🟦 Splendore (#Siyanie|Anti-corruzione): 3,9%
⬛️ Morale, Unità, Onore (#MECh|Estrema destra): 3,7%
🟦 C'è un Popolo come Questo (#ITN|ECR): 2,1%
Altri: 5,5%
@TuttoElezioni
#Sondaggi
#Bulgaria🇧🇬
#Parlamentari
Sondaggio di Gallup.
Data: 20-30 marzo 2026.
Campione: 820 persone.
Margine di errore: ±3,5%.
🟩 Bulgaria Progressista (#PB|Centro-sinistra populista): 28,4%
🟦 Cittadini per lo sviluppo europeo - Unione delle forze democratiche (#GERB|PPE; #SDS|PPE): 23,4%
🟦 Continuiamo il cambiamento - Bulgaria Democratica (#PP|RE; #DB|PPE): 10,9%
🟦 Movimento per i diritti e le libertà (#DPS|RE): 10,7%
🟧 Rinascita (#Vazrazhdane|ESN): 6,5%
🟥 Partito Socialista Bulgaro - Sinistra Unita (#BSP|S&D): 3,0%
🟦 Splendore (#Siyanie|Anti-corruzione): 3,0%
🟦 C'è un popolo come questo (#ITN|ECR): 2,9%
⬛️ Morale, Unità, Onore (#MECh|Estrema destra): 2,8%
Altri: 8,4%
@TuttoElezioni
#Sondaggi
#Bulgaria🇧🇬
#Parlamentari
Sondaggio di Gallup.
Data: 8-16 aprile 2026.
Campione: 803 persone.
🟩 Bulgaria Progressista (#PB|Centro-sinistra populista): 31,6%
🟦 Cittadini per lo sviluppo europeo - Unione delle forze democratiche (#GERB|PPE; #SDS|PPE): 21,0%
🟦 Continuiamo il cambiamento - Bulgaria Democratica (#PP|RE; #DB|PPE): 10,7%
🟦 Movimento per i diritti e le libertà (#DPS|RE): 10,5%
🟧 Rinascita (#Vazrazhdane|ESN): 6,8%
🟥 Partito Socialista Bulgaro - Sinistra Unita (#BSP|S&D): 4,0%
🟦 Splendore (#Siyanie|Anti-corruzione): 3,2%
🟦 C'è un Popolo come Questo (#ITN|ECR): 3,0%
⬛️ Morale, Unità, Onore (#MECh|Estrema destra): 2,8%
🟥 Grandezza (#Velichie|Estrema destra): 2,0%
Altri: 4,4%
@TuttoElezioni