Для тех кто пишет расширения на 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
#IDEX/USDT analysis :
#IDEX is currently in a downtrend and trading below the 200 exponential moving average (EMA). The price is encountering resistance from the 200 EMA and the resistance zone. It is anticipated to decline from there and test a lower low.
TF : 2h
Entry : $0.02875
Target : $0.02650
SL : $0.03024
#IDEX/USDT analysis :
#IDEX has recently broken out above the resistance zone and the 200 EMA. The price is likely to continue its bullish momentum and test higher levels.
TF : 15min
Entry : $0.03760
Target : $0.03894
SL : $0.03672
📊#IDEX pumped with a good volume from the horizontal support. Currently, it is facing the descending trendline, MA 100 and the Ichimoku cloud resistance. We've to keep an eye on a solid breakout of the Ichimoku cloud, which would confirm the upward direction.👀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
📊#IDEX is forming a descending triangle and price is heading toward a decision area. The support is $0.0469-$0.0485 area and a break below this support area will bring a heavy sell-off. The resistance is $0.052-$0.0522 area and we will only open a long position after a break above the resistance area.🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Эксклюзивно про Т-90МС: с выставочного подиума – в бой
Новейший Т-90МС, который в феврале этого года был звездой международной выставки#IDEX в Абу-Даби, уже выполняет боевые задачи в составе российских танковых подразделений.
Машина, которую мы впервые показали за рубежом, была доработана с учётом богатейшего опыта СВО. И в наши войска была отправлена практически в той же комплектации, что и демонстрировалась на выставке в ОАЭ. Изменение коснулось цвета: с «выставочного» песочного камуфляжа танк перекрасили в стандартный армейский зеленый.
Ко Дню танкиста публикуем эксклюзивное видео всего этого пути!
В этом ролике – вся история: от транспортировки танка на выставку, его работы на стенде Рособоронэкспорта и до возвращения домой, перекраски и отправки героям-танкистам.
#КонцернУВЗ#Т90