Для тех кто пишет расширения на 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
🌍 Barcelona’s “superblocks” group several city blocks to restrict car traffic inside, giving more space to people, trees, and bikes. This design lowers air pollution and boosts urban green life. ✨
#urbanism⚡#sustainability⚡#innovation⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 Seoul’s Cheonggyecheon stream was once a covered highway. Restoring this waterway transformed part of the city into a lively urban park, cooling the air and reducing nearby pollution. ✨
#urbanism⚡#restoration⚡#parks⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
Милан-Кортина 2026: Олимпиада «по тонкому льду» и мастер-класс по реновации спортивных объектов
В этом феврале мы наблюдаем за Олимпийскими играми в уже привычном статусе — без флага и гимна. Но профессиональная оптика не позволяет игнорировать это важное событие. Потому что именно в Италии уже случилась тихая революция в девелопменте мега-сооружений для масштабных событий мирового уровня.
Милан-Кортина 2026 — это первая Олимпиада у которой нет «архитектурного эго». Вместо того чтобы строить арены-памятники, итальянцы показали мастер-класс по adaptive reuse: 93% объектов — это или временная инфраструктура или существующая, но приспособленная под спортивные и культурно-массовые задачи.
Что интересного в материале, который яподготовила и рекомендую прочитать:
🏢Арена Санта-Джулия (David Chipperfield & Arup): Как спроектировать стадион с гигантским медиа-фасадом, который днем не выглядит как «выключенный телевизор», и сделать его якорем обновления бывшей «промки»
🏗Трансформация Rho Fiera: как превратить павильоны для коммерческих выставок в конькобежный стадион убрав подчистую сетку несущих колонн
🎓Олимпийская деревня = Студенческий кампус: Работа над ошибками Турина-2006. Жилье изначально проектируется как доступное общежитие для молодежи, которое просто «сдадут пожить» спортсменам на пару месяцев.
Материал совсем не про спорт больших достижений и гигантские бюджеты, а про то, как город может гибко адаптировать под мировые события существующие объекты и после завершения не оставаться один на один с долгами и никому не нужными тысячами квадратных метров общественных сооружений
👇 Подробный разбор архитектурных решений и стратегии — в лонгриде
#Оспорттымир#Urbanism#MilanCortina2026#архитектурное#лонгрид#зеленая_среда
The fifth season of the International Prize #WEARETOGETHER has been launched.
▫️ Foreign citizens and NGOs can apply until June 23, 2025 on the official website of the Prize https://wearetogetherprize.com.
🌐 The Prize is available for volunteers and NGOs from across the globe. The laureates will receive a cash prize valued at $10,000 and an invitation to take part in the International Forum of Civil Participation #WEARETOGETHER, which is traditionally held in December in Moscow.
👉🏻 Prize nominations:
♻️“Sustainable Future”
For those who are leading projects in the field of environmental protection, environmental education, ecological consumption, “green” economy and technologies
#ecology#urbanism#biodiversity#recycling#environmental protection
🕊️“Human Assistance”
For those who run projects aimed at improving the well-being of vulnerable categories of citizens, providing social and humanitarian assistance to people, discovering talents and nurturing individuals, developing education and volunteerism.
▫️ Apply here: https://wearetogetherprize.com/
#social_help#medicine#donorship#healthcare#emergencies
🔜The fifth season of the International Prize #WEARETOGETHER has been launched. Foreign citizens and NGOs can apply until June 23, 2025 on the official website of the Prize.
The Prize is available for volunteers and NGOs from across the globe. The laureates will receive a cash prize valued at $10,000 and an invitation to take part in the International Forum of Civil Participation #WEARETOGETHER, which is traditionally held in December in Moscow.
Prize nominations:
✔️“Sustainable Future”
For those who are leading projects in the field of environmental protection, environmental education, ecological consumption, “green” economy and technologies
#ecology#urbanism#biodiversity#recycling#environmental protection
✔️ “Human Assistance”
For those who run projects aimed at improving the well-being of vulnerable categories of citizens, providing social and humanitarian assistance to people, discovering talents and nurturing individuals, developing education and volunteerism.
Apply here
#social_help#medicine#donorship#healthcare#emergencies
🇷🇺Стартовал пятый сезон Международной Премии #МЫВМЕСТЕ. Иностранные граждане и НКО могут подать заявку до 23 июня 2025 года на официальном сайте Премии: https://wearetogetherprize.com/.
В премии могут принять участие волонтеры и НКО всех стран мира. Победители получат $10,000 и приглашение принять участие в Международном форуме гражданского участия #МЫВМЕСТЕ, который традиционно проходит в декабре в Москве.
Номинации Премии:
🌱«Устойчивое будущее»
Для тех, кто ведет проекты в сфере защиты окружающей среды, экологического просвещения, экологического потребления, «зеленой» экономики и технологий.
#экология#урбанизм#биоразнообразие#переработка#охрана_природы
🆘«Помощь людям»
Для тех, кто ведет проекты, направленные на улучшение благополучия уязвимых категорий граждан, оказание социальной, гуманитарной помощи людям, раскрытие талантов и воспитание личности, развитие образования и добровольческого движения.
Подать заявку можно на официальном сайте Премии: https://wearetogetherprize.com/
#социальная_помощь#медицина#донорство#здравоохранение#ЧС
🇷🇴A început cel de-al cincilea sezon al Premiului Internațional #SuntemÎmpreună. Cetățenii străini și ONG-urile pot depune o cerere până la data de 23 iunie 2025 pe site-ul oficial al Premiului: https://wearetogetherprize.com.
La competiția pot participa voluntari și ONG-uri din toate țări ale lumii. Câștigătorii vor primi 10.000 USD și o invitație de a participa la Forumul Internațional al Participării Civice #SuntemÎmpreună, care are loc tradițional în luna decembrie la Moscova.
Nominalizările Premiului:
🌱„Viitor sustenabil”
Pentru cei care desfășoară proiecte în domeniul protecției mediului, educației ecologice, consumului responsabil, economiei și tehnologiilor „verzi”.
#ecologie#urbanism#biodiversitate#reciclare#protecțiamediului
🆘„Ajutor pentru oameni”
Pentru cei care implementează proiecte dedicate îmbunătățirii bunăstării categoriilor vulnerabile ale populației, asistenței sociale și umanitare, dezvoltării talentelor și formării personalității, educației și mișcării de voluntariat.
Cererea poate fi depusă pe site-ul oficial al Premiului: https://wearetogetherprize.com
#asistențăsocială#medicină#donare#sănătate#situațiideurgență