Для тех кто пишет расширения на 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
🎬 Победитель недели в креативном видеоконкурсе!
Поздравляем единственного автора, чье видео прошло все условия отбора на прошлой неделе! 🏆
Победитель:
• UID: e12wi3q
• Платформа: YouTube
🎯 Конкурс продолжается до 30 ноября!
Успей снять и загрузить свое видео по игре «Тотал Футбол» с хештегами #ТоталФутбол#TotalFootball
Полные правила и условия участия:
👉https://t.me/totalfootball_official/290
Твой контент — твой шанс на победу! 🚀
🎬 Победитель недели в креативном видеоконкурсе!
Поздравляем единственного автора, чье видео прошло все условия отбора на прошлой неделе! 🏆
Победитель:
• UID: e127g64
• Платформа: TikTok
@iammaxim_s
🎯 Конкурс продолжается до 30 ноября!
Успей снять и загрузить свое видео по игре «Тотал Футбол» с хештегами #ТоталФутбол#TotalFootball
Полные правила и условия участия:
👉https://t.me/totalfootball_official/290
Твой контент — твой шанс на победу! 🚀
⚽️Голы! Сэйвы! Хайлайты недавнего стрима уже готовы!🚀
🔥Готовьте попкорн: самые эпичные моменты стрима уже здесь!
Спасибо всем участникам — вы так эффектно обыграли Амкал, что ребята до сих пор в себя прийти не могут! 😂🎉
#totalfootball#amkalfc
Ажиотаж вокруг Тотал Футбол X РПЛ на форуме «Россия — Спортивная Держава»! 🔥
Вокруг Тотал Футбол не протолкнуться — представители ведущих СМИ, футбольных клубов и спортивных федераций собрались возле нас, чтобы самим испытать игру в действии! 📹⚽️
Быть в центре внимания всей спортивной России — это огромная честь для нас! ❤️
Смотрите, как это было, и прочувствуйте энергию события! ⬇️
А вы уже видели этот хайп? Ставьте лайк, если гордитесь нашей общей работой! 🔥
#TotalFootball#РоссияСпортивнаяДержава#RPL
Мы тут на Международном спортивном форуме «Россия — спортивная держава», и легенды Российской Премьер-Лиги (РПЛ) вживую пробуют Тотал Футбол! 💪⚽️
Видели бы вы, с каким азартом они зажигают в игре! 🔥
А теперь главный вопрос: Угадайте, игроки какого клуба сейчас у нас в гостях? 👀
Варианты:
🥅 Зенит
⚽️ Спартак
❤️ ЦСКА
😄 Крылья Советов
🔥 Динамо Mахачкала
Пишите свои ответы в комментариях! 👇 Самых догадливых ждёт крутая награда!
🎁Наград: Агентский Контракт x1000, Карта Усиления I x3, ЕВРОx50000
#TotalFootball#RPL#РПЛ#РоссияСпортивнаяДержава
🔥Конкурс прогнозов уже здесь!
Угадайте хотя бы один из пунктов:
⚽️ исход матча
⚽️ общее количество голов
⚽️ общее количество жёлтых карточек
За правильный прогноз — получите набор【83+】Игрок года ×1 и 1000 агентских контрактов ⚽️
🤩Если никто не угадает — случайным образом выберем 10 участников и подарим ресурсные наборы!
#ЛигаЕвропы#Финал#TotalFootball#ТоталФутбол
✍️Ждём ваши прогнозы в комментария