Для тех кто пишет расширения на 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
“Lo #sport porta con sé anche delle tentazioni: quella della prestazione a ogni costo, che può condurre fino al #doping. Quella del profitto, che trasforma il gioco in mercato e lo sportivo in divo. Quella della spettacolarizzazione, che riduce l’atleta a un’immagine o a un numero”. A lanciare il grido d’allarme è stato Papa #LeoneXIV che questa mattina, nella Sala Clementina del Palazzo Apostolico, in Vaticano, ha ricevuto in udienza gli atleti italiani e paralimpici che hanno preso parte ai Giochi di #MilanoCortina2026.
"Contro queste derive, la vostra testimonianza è essenziale - l’omaggio ai presenti -. Voi siete stati testimoni di un modo onesto e bello di abitare il mondo. Portate l’idea che si possa gareggiare senza odiarsi. Che si possa vincere senza umiliare. Che si possa perdere senza perdere sé stessi”.
“E questo vale anche oltre lo sport - ha osservato il Pontefice -. Vale nella vita sociale, nella politica, nelle relazioni tra i popoli. Perché lo sport, se vissuto bene, diventa un laboratorio di umanità riconciliata, dove la diversità non è una minaccia, ma una ricchezza”.
“In un’epoca di grandi sfide climatiche, questi Giochi ci ricordano anche il legame tra sport e natura e il nostro dovere di prenderci cura della casa comune”, ha sottolineato il Santo Padre, affidando infine a tutti gli #atleti una missione: “continuare a far sì che la persona rimanga al centro dello sport in tutte le sue espressioni”.
Опубликована новая статья
🟣 2024 🟣 V. 11 🟣 Issue 2 🟣 Art. 202411207 🟣 Letter 🟣
📜 Features of electronic states in the vicinity of band gap and atomic structure of Ta- and Nb-doped Li7La3Zr2O12
👩🎓👨🎓 M. I. Vlasov (http://orcid.org/0000-0002-7814-7489), E.A. Surzhikov (http://orcid.org/0009-0005-3466-6374), A.Yu. Germov (http://orcid.org/0000-0001-6091-1250), E.A. Il'ina (http://orcid.org/0000-0003-1759-5234), I.A. Weinstein (http://orcid.org/0000-0002-5573-7128)
🏛 Institute of High Temperature Electrochemistry of the
Ural Branch of the Russian Academy of Sciences,
https://ihte.ru/?page_id=3106
🏛 Ural Federal University, https://urfu.ru/en
🏛 M.N. Mikheev Institute of Metal Physics of the Ural
Branch of the Russian Academy of Sciences,
https://www.imp.uran.ru/?q=en
🏛 Institute of Metallurgy of the Ural Branch of the Russian
Academy of Sciences, http://www.imet-uran.ru
📚#Li7La3Zr2O12#Ta#Nb#doping#bandgap#oxygen#vacancies
🔗https://doi.org/10.15826/chimtech.2024.11.2.07
https://journals.urfu.ru/index.php/chimtech/article/view/7692
Новая работа регулярного выпуска👇
🟢 2022 🟢 V. 9 🟢 Issue 4 🟢 No. 20229405🟢
📜 Phosphorus-doped protonic conductors based on BaLanInnO3n+1 (n = 1, 2): applying oxyanion doping strategy to the layered perovskite structure
👩🎓👨🎓 N. Tarasova (https://orcid.org/0000-0001-7800-0172), A. Galisheva (https://orcid.org/0000-0003-4346-5644)
🏛 Institute of High Temperature Electrochemistry, http://www.ihte.uran.ru
📚#layered#perovskite#oxyanion#doping#proton#conductivity#BaLaInO4#BaLa2In2O7
🔗https://doi.org/10.15826/chimtech.2022.9.4.05
https://journals.urfu.ru/index.php/chimtech/article/view/5979