Для тех кто пишет расширения на 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
Vaccines are one of the best tools we have to improve health and well-being around the world.
#TakeResponsibility, encourage your loved ones and those around you to #GetVaccinated.
Visit https://www.vacsitefinder.nphcda.gov.ng/ to locate the nearest vaccination site to you.
📢
Nigerians are advised to continue to #TakeResponsibility.
Visit the nearest government health facility to #GetVaccinated if you have not been previously vaccinated.
🔗
Public Health Advisory:
https://www.ncdc.gov.ng/news/429/public-health-advisory-following-the-presidential-approval-for-the-relaxation-of-covid-19-safety-measures-%26-travel-advisory
@PSCCOVID19 Update:
https://covid19.ncdc.gov.ng/media/files/Press_Release_-_Relaxation_of_COVID-19_Rules_Ako_221212_210142.pdf
#Cholera can be prevented.
Immunisation with the oral cholera vaccine plays an important role in outbreak prevention and control and the long-term elimination of #cholera.
#GetVaccinated
🚨DIPHTHERIA SITUATION REPORT🚨
As of March 9, 2025 (Epi-Week 10):
📍 23 suspected cases reported in Lagos (20) and Katsina (3)
📍 0 confirmed cases this week
📍 42,642 suspected cases recorded since 2022 across 37 states
📍 25,812 confirmed cases & 1,319 deaths (CFR: 5.1%)
🔹 Most affected states: Kano, Yobe, Katsina, Bauchi, Borno
🔹 62.9% of cases are in children aged 1–14 years
🔹 Only 19.3% of confirmed cases were fully vaccinated
💉 Vaccination is key! Protect yourself and your loved ones.
📞 Report suspected cases via NCDC’s toll-free line: 6232
🔗 Read more: https://ncdc.gov.ng/themes/common/files/sitreps/0a1f4b602a9f655c68b316934e533928.pdf
#Diphtheria#GetVaccinated#NCDCNigeria
People most at risk of #diphtheria infection are urged to #GetVaccinated
These include:
➡️Children & adults who have not received any dose of the anti-diphtheria vaccine
➡️Healthcare workers & others who have been exposed to suspected/confirmed cases
➡️People who live in areas with poor sanitation
#TakeResponsibility to stay safe
Severe disease, admissions and deaths disproportionately affect the unvaccinated and those with risk factors i.e., older people, people with underlying health conditions and the immunocompromised.
#GetVaccinated against #COVID19 to stay safe and healthy.
#TakeResponsibility
#COVID19 is still a health threat
If you are experiencing symptoms associated with #COVID19, visit the nearest testing centre close to you for diagnosis & treatment
#GetVaccinated, the vaccine protects you from severe illness, hospitalisation & death
#TakeResponsibility
Severe disease, admissions and deaths disproportionately affect the unvaccinated & those with risk factors i.e., older people, people with underlying health conditions and the immunocompromised.
#GetVaccinated against #COVID19 to stay safe and healthy.
#TakeResponsibility
Getting vaccinated protects you from severe illness, hospitalisation & death from the #COVID19 virus.
#TakeResponsibility, encourage your loved ones and those around you to #GetVaccinated.
Visit https://www.vacsitefinder.nphcda.gov.ng/ to locate the nearest vaccination site to you.
Good health is the most important gift this Christmas season.
#GetVaccinated against #COVID19 to protect yourself and your loved ones.
#TakeResponsibility
Elderly persons & those with existing medical conditions are encouraged to take extra precautions to stay safe & healthy.
💉#GetVaccinated to limit your risk of getting infected with #COVID19.
Vaccination sites: https://nphcda.vaccination.gov.ng/vaccination-sites
#TakeResponsibility
Immunisation with the oral cholera vaccine plays an important role in outbreak prevention and control and the long-term elimination of cholera.
#GetVaccinated
#WorldImmunisationWeek