Для тех кто пишет расширения на 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
One bread. 100 children. School fees. Rent. 😭🍌
Omo Episode 3 is pure Nigerian survival at this point 😂
Watch till the end to see why Banana Father finally lost his mind 👀
#100PikinNoMoney
#NigerianHumor
#AIReels
#Instablog9jaVibes
Omo… this Sophia vs Bolaji saga is slowly exposing how far some Lagos “big girls” allegedly go just to maintain the soft life image online 😭🍿
People are now dissecting Sophia’s chats after she admitted she tagged her shopper on items “she didn’t even purchase.” Social media users are alleging that some influencers and soft life babes intentionally tag shoppers on luxury items just to create the illusion that they’re constantly cashing out and buying designer nonstop 👀
The streets are also dragging luxury vendors who allegedly allow clients pose with bags, orange boxes and expensive items for content before returning them later. At this point, many are asking if social media luxury is really what it seems 😩
Lagos packaging no dey ever disappoint sha 💀
What’s your take on this whole “fake it till you make it” soft life culture? 👇🏽
PS: See previous post for context
#Instablog9jaVibes#LagosGist#SoftLife#CelebrityDrama
Sophia Egbueje calls out her luxury shopper Bolaji on Snapchat
Lagos soft life don turn episode series 😭🍿
Imagine your personal shopper knowing ALL your secrets, receipts, debt stories, returned bags, and “packaging” moves… then friendship crashes 💀
At this point, who really keeps Lagos influencer secrets? 👀👇🏽
#Instablog9jaVibes#LagosGist#SoftLife#CelebrityDrama
Frank Edoho thought Nigerians would drag Chike but the internet said “drop EP first” 😭💀
Instead of backlash, bros is getting movie bookings, love declarations and free promo. Men really move differently in this country abeg 🥴🍿
#FrankEdoho#Chike#NigerianTwitter#Instablog9jaVibes
“She cheated on me first.”
“No, HE cheated on me first.” 😭💔
At this point, who do you guys actually believe in this Frank and Sandra drama? Omo this gist is getting messier by the minute ☕️👀
#FrankEdoho#Sandra#CelebrityDrama#Instablog9jaVibes
So village people are actually holding monthly board meetings and Nigerians are STILL stressing them 😭💀
Wait till you hear why Emeka really failed JAMB 😂 Comment the funniest excuse you’ve heard before 👀
#NigerianComedy
#VillagePeople
#FunnyReels
#Instablog9jaVibes
Internet people said Carter Efe should stream with Chike and omo… his reaction did not disappoint 😭😂
At this point, Nigerian social media deserves its own reality show because what is actually going on here? 💀
#CarterEfe#Chike#NigerianTwitter#Instablog9jaVibes
Episode 1: Watermelon thought life was finally getting better 😭🍉
Next thing… pineapple wife announced baby number 73 👶🏽
Watch till the end because this house now sounds like Balogun market 😂
#NigerianHumor
#FamilyChaos
#AIReels
#LagosLife
#Instablog9javibes
Lagos traffic can humble even the strongest person 😭🍉
Watch till the end to see what happened to this watermelon after “15 minutes away” turned into almost 3 hours 👀
What’s the worst traffic you’ve ever experienced in Lagos?
#LagosTraffic
#NigerianHumor
#AIReels
#LagosLife
#Instablog9jaVibes
NEPA really said “no soft life for anybody” 😭⚡
Just when the smoothie was blending perfectly… darkness entered. Watch till the end 🍓
What’s the fastest NEPA has ever taken light after your enjoyment started? 👀
#NigerianHumor#LagosLife#AIReels#RelatableContent#Instablog9jaVibes