Для тех кто пишет расширения на 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
💥PLAYMOBIL Asterix Barco Pirata
Aventuras en alta mar con Astérix y Obélix
✅OFERTA: 40.0€
❌ Antes: 59.99€
💰Ahorras un 33%🔥
Diversión garantizada para niños y niñas a partir de 5 años
👉 Hazte con él y vive emocionantes batallas navales
#playmobil#asterix#barcopirata#juguete#aventura#ninos#rebajas#descuentos
🛰️Oferta publicada en Cultura y Ocio
🤟Давно у нас не было тематических дней...
🆒 Встречаем Астерикса и Обеликса
🗣Олдскулы свело
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
🇬🇧Asterix and the Chieftain's Daughter #01
🇷🇺Астерикс и Дочь Верцингеторикса #01
В сопровождении двух вождей, таинственная девочка-подросток прибыла в деревню. Говорят, что её отцом был Верцингеторикс, храбрый вождь, потерпевший поражение в битве с римлянами. И теперь Цезарь хочет схватить её любой ценой. За дерзкой дочерью вождя присматривают Астерикс и Обеликс, но у неё другие планы, она сбегает от своих новых опекунов. Начинается погоня, девочку нужно разыскать до того, как это сделают римляне. Успеют ли наши неукротимые герои спасти её?
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and the Black Gold #01
🇷🇺Астерикс и чёрное золото #01
Финикийский купец Эпидермис забыл о том, что друид Панорамикс заказал горное масло — важный ингредиент волшебного зелья. Астерикс и Обеликс отправляются на Ближний Восток в поисках чёрного золота. А также смогут ли они перехитрить римского секретного агента Двануляшестикса и его невероятную складную колесницу, оснащенную по последнему слову шпионской техники?
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and the Picts #01
🇷🇺Астерикс и Пикты #01
После того как Астерикс и Обеликс спасают таинственного Пикта по имени Макарун, они отправляются в Каледонию, ныне Шотландию, чтобы вернуть его возлюбленной Камомилле, приёмной дочери старого короля. Однако коварный вождь Макабей планирует жениться на ней и захватить трон с помощью Римлян! Смогут ли Галла пройдя через метание брёвен, волынки, хмельную воду и гигантскую выдру в озере лох, воссоединить Макаруна и Камомиллу и задать трёпку Римлянам?
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and Obelix All at Sea #01
🇷🇺Астерикс и Галера Обеликса #01
Рабы восстали... и украли собственную галеру Юлия Цезаря. Надеясь укрыться в маленькой галльской деревушке, они понимают, что не всё так гладко. Обеликс испытал ужасные последствия передозировки волшебного зелья друида. Смогут ли друзья исцелить его с помощью Морсикуиса, верховного жреца Атлантиды? Вас ждёт накал страстей и захватывающие морские сражения с римским флотом!
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and the Great Divide #01
🇷🇺Астерикс и Большой Ров #01
Деревня в Галлии политически и физически разделена глубоким рвом из-за спора о лидерстве между соперничающими вождями Клевердиксом и Маджестиксом. Попытки преодолеть свои разногласия, сначала через диалог, а затем через битву, только увеличивают раскол.
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and the Mansions of the Gods #01
🇷🇺Астерикс и Обитель богов #01
Почему бы не оккупировать галльскую деревню, построив вокруг современный жилой комплекс? Такой план придумал модным римским архитектором Англаигус, чтобы помочь Цезарю сокрушить неукротимых галлов.
Соблазнит ли жителей деревни возможность заработать денег на новых римских соседях? Поможет ли секретного оружия галлов? И справится ли Астерикс с точечной застройкой.
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское
🇬🇧Asterix and the Roman Agent #01
🇷🇺Астерикс и Раздор #01
Юлий Цезарь затеял психологическую войну... Туллий Детригнус — римский агент который гарантированно сеет вражду, зависть и раздор где угодно. Сможет ли он заставить галлов подозревать друг друга в предательстве? Неужели Астерикс действительно продаст Риму секрет волшебного зелья? И смогут ли Астерикс, Обеликс и Панорамикс перехитрить коварного Детригнуса и вернуть мир в деревню?
#астериксиобеликс#asterixandobelix#астерикс#asterix#обеликс#obelix
#авторское