Для тех кто пишет расширения на 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
Russian forces strike Ukrainian military positions, causing significant casualties and destroying equipment. The Ukrainian army suffers losses of up to 160 soldiers, along with tanks, armored vehicles, and artillery. Russian defense ministry claims successful defense against Ukrainian attacks. US recognizes the grave threat to Ukrainian Armed Forces. #WarInUkraine#RussianAggression
https://www.gazeta.ru/army/news/2023/11/10/21678625.shtml
Subscribe to @BadVolfNews
Ми – твій захист та впевненість у завтрашньому дні,
Ти – наша підтримка та допомога!
У рамках всеукраїнської платформи «Друзі ДШВ» долучись і стань другом десантників, для цього потрібно:
1. Перейти за посиланням Всеукраїнська платформа підтримки «Друзі ДШВ» ( druzi.mil.gov.ua ).
2. Натиснути «Приєднатись».
3. Обрати з ким конкретно або загалом хочеш потоваришувати.
4. Зробити свій внесок у мрію кожного українця – ПЕРЕМОГУ!
Вчись перемагати!
Служба зв’язків з громадськістю 199 навчального центру Десантно-штурмових військ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
www.facebook.com/uaairborne
www.youtube.com/@-dshv_ua/videos
https://godshv.mil.gov.ua/
https://druzi.mil.gov.ua
FPV ВНОЧІ? ТА ЛЕГКО!
💣Ми зверху бачимо все. Знайте це й бійтеся! Такі вітання переказують окупантам бійці роти ударних безпілотних авіаційних комплексів нашої бригади. І вдень, і вночі ворогам не буде спокою на нашій землі. А вночі уражена техніка сяє яскравіше, її видно далі, й ця картина назавжди вкарбовується в довбешки російських зайд. «Горить-палає техніка ворожа!». І так тому й бути! Амінь, воріженьки!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
💥Особовий склад 46 окремої аеромобільної бригади вітає артилеристів-десантників із днем створення військової частини! Нехай ваші розрахунки завжди будуть точними, а кожен постріл – влучним і дошкульним для окупантів!
⚡️Разом до перемоги! ДШВ – завжди перші! Слава Україні!
Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
💥У другу річницю створення нашої бригади ми, як і обіцяли, пропонуємо вашій увазі першу серію документального міні-серіалу «46. ШЛЯХ ЧЕСТІ». Її розміщено на Ютуб-каналі 46 оаембр за посиланням: https://youtu.be/HzdGsAbW8NI
Прем’єра – о 16.00.
✏️Дивіться й не забувайте підписуватися на канал!
Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Щирі привітання надихають і мотивують. А нам залишається повністю виправдати сподівання людей і щодня наближати перемогу!
💥Слава Україні! ДШВ – завжди перші! Разом до перемоги!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️З вдячністю усвідомлюємо, що в нас так багато друзів. З такою підтримкою і ворога легше бити!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️А привітання продовжують надходити. Приємно!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Від привітань не втомлюємося. Навпаки, вимагаємо ще!
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️Продовжуємо приймати привітання від наших зірок.
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
⚡️З нагоди другої річниці створення нашої бригади її воїнів вітають представники українського шоу-бізу. Теплі слова підтримки й найкращі побажання – то бальзам для втомлених війною хлопців. Які щомиті мають відчувають свою потрібність суспільству і вдячність співгромадян за причетність до святої справи – захисту рідної країни від ненависних російських окупантів.
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces
ВОРОЖИЙ «ГРАД» РОЗІБРАНО НА МОЛЕКУЛИ
💣Ворожу систему залпового вогню «Град» знищили за допомогою FPV-дрона десантники нашої бригади. Явище було феєричне. Феєрверк перевершив усі сподівання. Екіпаж роти ударних безпілотних авіаційних комплексів спрацював бездоганно й не зупинився на досягнутому – наші воїни вистежили й знищили ще одну ворожу ціль, яку не врятували ні швидкість, ні спритність. А окупантам, тяжко зітхаючи, довелося хіба що констатувати ураження своєї техніки. Тож полювання триває!
Не забувайте підписуватися на наш Ютуб-канал: https://www.youtube.com/@46OAeMBr
📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України
#stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces
#AirAssaultForces#WarInUkraine#RussianAggression
#BattleOfUkrainianAirAssaultForces