Для тех кто пишет расширения на 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
Facades for the OPPO Super Flagship Store.
Bamboo inspired the facade design for the OPPO Super Flagship Store in the city of Guangzhou.
An important source of food, clothing, housing, and transportation for people in Guangzhou in ancient times, the design adds a contemporary twist to the vernacular architecture of the city.
Photos: CreatAR images
Architecture: UnStudio
#unstudio#benvanberkel#materialmonth#architecture#facadedesign#arch_shovel
Do you know how many silver spheres are on the facade of the Hanjie Wanda Square in Wuhan, China?
42,333.
While they all may look identical, their specific positions involving each other recreate the effect of movement and reflection in water or the sensuous folds of silk fabric.
Photos: Edmon Leong / UNStudio
#unstudio#facades#facadedesign#architecture#retaildesign#lightingdesign#arch_shovel
Can you guess what inspired Unstudio architecture’s design for the facade elements of the Shenzhen Maritime Museum?
Comment your answer below!
#unstudio#ceramicdesign#facadedesign#worldmuseums#museumsoftheworld#museumdesign#architecture#architecturaldesign#arch_shovel
Flexibility has become more important to people today than sheer size.
With the design for Van B UnStudio introduce new ways to make the footprint of an apartment more flexible — challenging old conventions of square footage and fixed footprints.
The architectural strategy was to devise as many different ways as possible to reconfigure an apartment. To achieve this, architects designed a ‘plugin-based’ system that allows homeowners to use the space in a 40m2 apartment almost as if it were a 60m2 loft.
This allows you to easily change the use of the same floor space in a matter of seconds, making it possible to transform a room from a generous office into a cozy living room, or a bedroom.
Renders: Bauwerk / bloomimages
#unstudio#housing#modularhousing#modularity#flexibility#inclusivedesign#germandesgin#sustainability#greenarchitecture#arch_shovel