Для тех кто пишет расширения на 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
🌎 Wild African grey parrots are known to mimic not only human speech but also the calls of up to 30 other bird species in their habitat. This ability helps them integrate into mixed-species flocks and avoid predators by confusing potential threats. Parrots’ vocal learning is so advanced that some individuals can remember and use sounds for decades. ✨
#parrots⚡#intelligence⚡#communication
👉subscribe Interesting Planet
👉more Channels
🌎 African grey parrots rank among the best animal communicators. Scientific studies show they can understand hundreds of words, use them in context, and even grasp abstract concepts like “same” and “different.” One famous parrot, Alex, correctly identified shapes and colors and understood the concept of zero. ✨
#parrots⚡#cognition⚡#communication
👉subscribe Interesting Planet
👉more Channels
🌎 African grey parrots can solve multi-step logic puzzles and use words in meaningful context. In experiments, these parrots matched human toddlers in understanding basic concepts. The largest recorded vocabulary for one individual exceeded 1,000 words. ✨
#parrots⚡#animalbehavior⚡#cognition
👉subscribe Interesting Planet
👉more Channels
🌎 Parrots like the African grey can learn hundreds of words and use them to solve problems or request specific items. Studies show Alex, a famous African grey, identified colors, shapes, and quantities—demonstrating complex reasoning once thought exclusive to humans. ✨
#parrots⚡#cognition⚡#language
👉subscribe Interesting Planet