Для тех кто пишет расширения на 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
The Tuskegee Study was a government experiment from 1932 to 1972. It involved Black men with syphilis who were told they were getting free health care. But doctors did not give them medicine to cure the disease. They just watched the sickness get worse. The men did not know the truth and were not allowed to leave the study. This caused a lot of harm and suffering.
[Read more]
@googlefactss🏥⚠️#TuskegeeStudy#MedicalEthics#History#HealthRights
HeLa cells – taken from Henrietta Lacks in 1951 without her consent – became the first immortal human cell line.
They helped develop the polio vaccine, cancer treatments, and gene mapping, revolutionizing medicine. 7
Her story highlights major ethical questions in science and patient rights.
[Read more]
@googlefactss
#HeLa#MedicalEthics#ScienceHistory#HenriettaLacks
Active euthanasia is when a doctor directly ends a patient’s life, like using a lethal injection. Passive euthanasia is when doctors stop treatment or life support, letting the person die naturally.
Passive euthanasia is legal in many countries. Active euthanasia is only legal in a few, like the Netherlands, Belgium, Luxembourg, Canada, Spain, Portugal, Colombia, Ecuador, and New Zealand. Some U.S. states allow assisted dying, but not active euthanasia.
Many people find passive euthanasia more acceptable. Active euthanasia is more controversial. People worry about abuse or moral problems. Support often depends on whether a person is terminally ill or in unbearable suffering.
⚕️🛌💉🌍📜
[Check our poll]
[Read some more]
@googlefactss
#Euthanasia#PassiveVsActive#MedicalEthics#RightToDie#HealthEducation#TeenLearning#GlobalLaw