Для тех кто пишет расширения на 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
🌎 In Papua New Guinea, the Kaningara people of the Sepik River region perform a crocodile-scarification ritual. Teenage boys undergo elaborate skin-cutting ceremonies that create raised scars resembling crocodile scales, symbolizing a spiritual connection with the river’s sacred crocodiles. The process involves hundreds of cuts and can last several hours. ✨
#ritual⚡#anthropology⚡#tradition
👉subscribe Interesting Planet
👉more Channels
🌎 In Japan, families practice the Obon Festival, where people clean ancestors’ graves and light lanterns to guide spirits home. This Buddhist tradition has been celebrated for over 500 years, with massive lantern floats illuminating rivers in regions like Kyoto. ✨
#culture⚡#ritual⚡#festival
👉subscribe Interesting Planet
👉more Channels
🌎 On the island of Bali, the Ngaben cremation ceremony is a vital tradition where families publicly cremate relatives in elaborate towers and animal-shaped sarcophagi. The ritual represents freeing the soul so it can reincarnate, with some ceremonies drawing crowds of thousands for a single cremation. ✨
#culture⚡#ritual⚡#Bali
👉subscribe Interesting Planet
👉more Channels
Люди Леса — Другие шепоты, другие тени (2023)
С радостью презентуем вам новый альбом нового проекта!
Пишите свои отзывы и ощущения: нам интересно!
Люди Леса - новый проект музыканта и путешественника Александра Старостина и вокалистки Яны Вевы, создающих неповторимую атмосферу сакральных ритуалов, перенесенных из древней эпохи в постапокалиптический мир ближайшего будущего. Народный вокал и этнические инструменты здесь проявляются словно из заметаемых снегом пустых пространств. Тревожное предчувствие грядущих темных времен.
Яндекс музыка: https://music.yandex.ru/album/27881784
Сбер звук: https://zvuk.com/release/31687189
Остальные платформы: https://clck.ru/376BPi
#DarkFolk#Ritual#FolkAmbient
💡🔦Soul Food x figura.fon💡🔦
Вечер электронной музыки с гостями изкреативной студии figura.fon
#electronic#triphop#ambient#experimental#techno#idm#ritual
🕰
13 декабря (суббота)
17:00 – 23:00
👽
Electric Blue
Vanya
Be Kompromissed
Chaika
Unculture Theory
Microamp
Xonwy
nothing is real
📍
Красная Поляна, пер. Ореховый 2а, Soul Food