Для тех кто пишет расширения на 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
🇷🇺🇮🇹⛷ Le skieur alpin russe Alexeï Bougaïev occupe la tête du classement après la première manche du slalom aux Jeux paralympiques disputés en Italie.
Le Russe a réalisé un temps de 45,39 secondes. M. Bougaïev concourt dans la catégorie LW6, qui regroupe les athlètes présentant une déficience d’un membre supérieur.
La seconde manche doit se dérouler plus tard dans la journée de dimanche. Lors de ces Jeux paralympiques, Alexeï Bougaïev a déjà remporté deux médailles de bronze, en descente et en slalom géant.
Âgé de 28 ans, Alexeï Bougaïev est triple champion paralympique. Les Jeux paralympiques s’achèvent le 15 mars.
#russie#paralympiques#ski
🇷🇺🇮🇹 Le skieur russe Ivan Goloubkov a remporté la médaille d'or dans la course à départ séparé de 20 km en position assise aux Jeux paralympiques en Italie.
L'athlète a réalisé un temps de 51 minutes et 55,0 secondes. Ivan Goloubkov concourt dans la catégorie LW11,5, qui regroupe des athlètes ayant des déficiences significatives des fonctions des jambes.
Ivan Goloubkov, 30 ans, est champion du monde à six reprises et a remporté neuf fois la Coupe du monde en ski de fond et en biathlon.
#russie#paralympiques#ski
🇷🇺🇮🇹⛷ L'équipe de Russie a pris la troisième place au classement des médailles des Jeux paralympiques en Italie.
Les athlètes russes ont remporté 8 médailles d'or, 1 d'argent et 3 de bronze. La 1ère place est assurée par l'équipe de Chine (15-13-16), la 2ème place appartient aux Américains (12-5-6). 2 médailles d'or restent encore à attribuer aux Jeux paralympiques.
6 athlètes russes ont participé aux Jeux paralympiques. Les athlètes de Russie ont concouru aux Jeux paralympiques avec les symboles nationaux pour la première fois depuis 12 ans.
La skieuse alpine Varvara Vorontchikhina a remporté 2 médailles d'or, une d'argent et une de bronze. Le skieur alpin Alexeï Bougaïev a gagné l'or et 2 médailles de bronze. La fondeuse Anastassia Baguian est devenue triple championne paralympique, et le fondeur Ivan Goloubkov est monté 2 fois sur la plus haute marche du podium
#russie#paralympiques#champions