Для тех кто пишет расширения на 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
El tipo de cambio publicado por el BCV es el promedio ponderado resultante de las operaciones diarias de las mesas de cambio activas de las instituciones bancarias participantes.
The exchange rate published by the BCV is the weighted average resulting from the daily operations of the active exchange desks of the participating banking institutions.
@DolarBCV vía Telegram
EUR. 110,22403576
CNY. 13,51657754
TRY. 2,48007278
RUB. 1,23009227
USD. 97,31260000
Fecha Valor: Martes, 03 #Junio 2025
El tipo de cambio publicado por el BCV es el promedio ponderado resultante de las operaciones diarias de las mesas de cambio activas de las instituciones bancarias participantes.
EUR 39,63324780
CNY 5,04507291
TRY 1,13412616
RUB 0,40434152
USD 36,53440000
Fecha Valor: Martes, 04 #Junio 2024
@DolarBCV
🌞🤸 Bienvenido #junio🌚💫 con "J" de juventud 🌼
🥳 Muchas felicidades 🎊
para todos los
♊ Géminis 👥
y
♋ Cáncer 🦀
que cumplen años este mes
Acá les dejamos una ✨#frase motivacional✨🤲💖👇🏻👇👇🏼👇🏽👇🏾👇🏿
✨ Tómate tiempo para hacer cosas que hagan que tu corazón sonría 💫😌
#undiaalavez#pendientes
🌊🌼 Bienvenido #junio🌼🌊
🥳 Muchas felicidades 🎊
para todos los
♊ Géminis 👥
y
🦀 Cáncer ♋
que cumplen años este mes
Recuerda que si haces un pedido en tu cumpleaños recibes un descuento 🎂🥳
Acá les dejamos una ✨#frase motivacional✨🤲💖👇🏻👇👇🏼👇🏽👇🏾👇🏿
✨ "El éxito consiste en ir de fracaso en fracaso sin perder el entusiasmo" ✨
😌#undiaalavez#pendientes#margaritas
#TPSElSalvador | Autoridades del Gobierno de los #EstadosUnidos anunciaron la #extensión automática del Estatus de Protección Temporal (#TPS hasta #junio de 2024) para seis países, entre estos, El Salvador.
#ElSalvador🇸🇻 | ⚡️t.ly/Rux7