Для тех кто пишет расширения на 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
It is 'Telegram Thursday' and I want to recommend you interesting channels.
Today there is a very good channel, focusing on the Greek aspect of European culture:
https://t.me/GreekLeague
Have a look and follow this channel! It has lots of original content.
#Greek#TelegramThursday
@EuropeanTribalism
📖Title : I, Medusa
✍️Author : Ayana Gray
⭐️Rating : 4.14/5 (Goodreads)
📆Published : Nov 18, 2025
————————————————
Summary:I, Medusa reimagines the legendary figure as a vulnerable yet fierce young woman named Meddy. Living in a world ruled by unpredictable gods, she longs for dignity and safety beyond her village’s expectations. Chosen to serve Athena, she believes she has finally found purpose — until a devastating betrayal by Poseidon shatters her life. Punished instead of protected, Meddy is transformed into the infamous Gorgon, her hair becoming living snakes and her gaze turning lethal. Exiled and feared, she slowly embraces her new identity, reclaiming her voice, power, and destiny. The story reframes Medusa as survivor, not monster.
————————————————
#fantasy#mythology#fiction#greek#historical@Bookslibraryofficial@free_novellas@eternalmantra
Various Artists — The Archival Recordings of Constantin Brăiloiu (Death Is Not The End, 2024)
#traditional#field_recording#basque#bretton#bulgarian#corsican#ethiopian#flemish#gaelic#georgian#greek#hausa#inuit#irish#italian#kabyle#macedonian#norwegian#romanian#russian#sardinian#sephardic#swiss#tuareg#Brittany#Flanders#Wallonia#Bosnia_and_Herzegovina#Bulgaria#China#England#Ethiopia#France#Georgia#Greece#India#Ireland#Italy#Japan#Macedonia#Norway#Portugal#Romania#Russia#Switzerland#Turkey
Сборник записей пионера румынской этномузыкологии, Константина Браилою. Треки с него впервые прозвучали на радио NTS в июле 2017 года, а в 2024 году лейблDeath Is Not The End выпустил его в формате полноценного альбома в честь своего 10-летия.
Сборник включает полевые записи народных песен и танцев и охватывает музыкальные традиции множества культур: английской, ирландской, гэльской, норвежской, бретонской, японской, итальянской, швейцарской, баскской, сардинской, эстонской, грузинской, греческой, турецкой, сефардской, португальской, французской, китайской, русской, хауса, туарегов, индийской, корсиканской, эфиопской, румынской, валлонской, фламандской, немецкой, кабильской, болгарской, македонской, боснийской и карибу-эскимосской.
Существенная проблема этого релиза заключается в том, что треки не проаннотированы. По этой причине слушателю придется упавать на свою собственную эрудицию и знание языков, чтобы понять, какая композиция принадлежит к какой культуре.
🔗Bandcamp | Telegram