Для тех кто пишет расширения на 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
There were police everywhere in Hong Kong as if they were ready for a terrorist attack. But all they were doing was to catch people with a candle on #June4th.
#June4 #8964 #tianamensquaremassacre#neverforget1984#hkpolicestate
Photos from @ReNews
🕯 六四悼念晚會|英國各地 📍
6 月 4 日,英國多個城市將會舉行六四悼念晚會。
喺呢個重要日子,一齊用燭光紀念歷史、悼念死難者,堅持真相,延續記憶,守護言論與集會自由。
誠邀大家出席所在地區嘅悼念活動,與港人同行,守護良知。
📌 各地活動詳情,請以主辦單位公布為準。
(我哋亦整理咗主要場地嘅資訊,見下一張圖/Story)
#六四#六四晚會#六四36周年#移英港人#英國港人#毋忘六四
🕯 June 4 Vigil | Across the UK 📍
On June 4, vigils will be held across various cities in the UK to commemorate the Tiananmen Massacre.
We invite all Hongkongers and supporters to join these gatherings — to honour the fallen, defend the truth, and carry the memory forward.
📌 Please refer to the respective organisers for final event details.
(We’ve compiled the key locations — check the next image / Story )
#June4#TiananmenMassacre#VigilUK#HongKongersInUK#NeverForget#Democracy
***
✏️有英國國會聯署任務,你簽咗未?
1⃣BNO平權聯署 ✅
2⃣「外國影響力登記計劃」中 列明中國與香港為「進階級別」聯署✅
✏️如果有諗法想講,㩒入嚟一齊傾📝
🇬🇧除咗生活,一個仲會講抗爭嘅英國公海。
#CCP bans Tiananmen vigil, intensifies crackdown in #HongKong
On the 36th anniversary of the Tiananmen Square Massacre, #HongKongPolice deployed heavy forces, detaining at least 12 people, including activists carrying symbolic items.
🔹 2 arrested – A mainland woman* and a local man were detained for failure to produce ID & obstructing police officers.
🔹 10 others taken away – 5 men and 5 women, aged 15 to 69, were detained for "breach of peace", with 3 still in custody.
🔹 CCP’s Erasure of History – The once-massive Tiananmen vigil in Hong Kong is now banned, part of Beijing’s effort to erase the massacre from public memory.
#June4#TiananmenMassacre#PoliticalRepression#HumanRights
#中共 禁 #六四燭光晚會,#香港 鎮壓升級
在 #六四天安門事件 36周年當天,香港警方 重兵駐守 ,拘捕至少12人,包括持有象徵物的市民及社運人士。
🔹 兩人被捕 – 內地女子及本地男子分別因未能出示身份證及阻撓警務人員被捕。
🔹 十人被帶走 – 5男5女 ,年齡介乎15至69歲 ,因「破壞社會安寧」 被扣查,其中3人仍被拘留。
🔹 中共抹去歷史 – 香港六四燭光晚會已被禁止 ,北京正試圖從公眾記憶中抹去大屠殺。
#天安門事件#政治打壓#人權
The 35th anniversary protest and rally for #tianamensquaremassacre is hosting all around the world. Countries include #USA, #Canada#UK, #Japan, #Taiwan, #Netherland, #Australia, and #NewZealand. We urge everyone to gather to protest against tyranny and never forget the day #CCP killed thousands of innocent people who were only seeking for democracy.
#tiananmensquare#june4#june41989#tianamensquareprotest