Для тех кто пишет расширения на 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
Higher temperatures, more wet and dry extremes, and accelerating increase in mean sea levels are projected for Singapore and Southeast Asia by the end of the century. Details of Singapore’s Third National Climate Change Study (V3) at go.gov.sg/V3
The choices we make today will determine our future climate. We need every individual to care for the environment as a way of life, in order to build a liveable and #SustainableSG. Find out how you can make a difference at www.mse.gov.sg/policies/climate-change/climategamechanger
Year-end celebrations are different this year, but that doesn’t mean we can’t make this one as special as the last. Let’s make this season of giving an unforgettable and meaningful one, by caring for the environment, yourself and your loved ones. #SustainableSGhttps://go.gov.sg/nea-year-end-advisory-2020
🎶 Ooooo~ This is an S.O.S.! 🎶
Good deals may be tempting but just because it’s on discount doesn’t mean you have to buy it.
Reduce food wastage during the upcoming year-end festivities:
✅ Plan your meals and prep a shopping list
✅ Order only what you can finish
✅ Transform leftovers into new dishes
#SayYEStoWasteLess#SustainableSG
Happy International E-waste Day!
Your old electronics aren’t just clutter. They’re filled with critical raw materials that can power our green future. ♻️
Drop them off at an e-waste bin. Let’s keep those precious materials in the loop!
#RecycleRight#SustainableSG
Ready for Bloobin's eco-party? Let’s see if your paper items make the cut!
Learn more about what can or cannot be recycled at go.gov.sg/towards-zero-waste.
#RecycleRight#SustainableSG
Bloobin's throwing the hottest eco-bash in town. Are your plastic items on the guest list or blacklist?
When unsure, check go.gov.sg/towards-zero-waste.
#RecycleRight#SustainableSG
Serving your guests special cookies and drinks this festive period? Don’t forget those cookie and drink containers can be recycled. For drink containers, get rewarded when you bring them to the nearest ‘Recycle N Save’ Reverse Vending Machine! ☺
You may also choose the ‘no reward’ option – just like 1 in 5 people who recycle with us! Saving our environment for our future generations is the greatest reward. More information at https://recyclensave.sg
#RecycleRight#SustainableSG
Our actions today impact our world tomorrow, and it is up to us to make it a better one. Together, let’s work #TowardsZeroWaste and build a #SustainableSG.
If you’re still not sure how to start, check out the activities and challenges at www.gogreen.gov.sg/programmes/
Donate items in good condition to others who need them most. Your pre-loved treasures could be someone else's gift!
For suggestions on donation channels, visit go.gov.sg/donate-resale-repair-channels
#TowardsZeroWaste#SayYEStoWasteLess#SustainableSG