Для тех кто пишет расширения на 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
Shujaat Khan & Katayoun Goudarzi — This Pale (Black Groove Music, 2021)
#hindustani#persian_classical#sitar#ney#tabla#Iran#India
Совместная работа ситариста Шуджаата Хусейна Хана и иранской вокалистки Катаюн Гударзи. За свою долгую карьеру Шуджаат выпустил более 60 альбомов. Одним из самых ярких моментов его карьеры стал альбом The Rain, записанный с индо-персидским ансамблем Ghazal. Пластинка была номинирован на премию Грэмми в 2004 году. На новой работе This Pale звуки ситара Хусейна Кхана, вокал Гударзи, най Шахо Андалиби и табла Шарика Мустафы вдохнули новую жизнь в шесть стихотворений Руми, персидского поэт-суфия XIII века.
Spotify | AppleMusic
Nu Genea — Bar Mediterraneo (NG Records, 2022)
#funk#soul#boogie#canzone_napoletana#disco#afrobeat#ney#Italy#France#Tunisia
Bar Mediterraneo, как и Неаполь, родной город Nu Genea, всегда открыт для путешественников со всего света, для их песен, инструментов и музыки. И таким настроением наполнен весь новый альбом группы. Композиция Tienaté позволяет прочувстовать всю своеобразность неаполитанского языка и услышать, как диско заигрывает с местной фолк-музыки. В песне Gelbi флейта ней ведет диалог с тунисским певцом Марзуком Меджири. В Marechia звуки неаполитанского языка переплетаются с нежным пением француженки Селии Камени. В Straniero мелодичная мандолина сопровождает бит, когда-то записанный легендой афробита, барабанщиком Тони Алленом. Стихотворение Рафаэля Вивиани 1930 года вторит непринужденном ритму джаз-фанка в композиции La Crisi.
🔗Spotify | AppleMusic | Bandcamp | VK
The National Choir of Turkish Classical Music — Turkish Classical Music: Tribute to Yunus Emre (Unesco Collection, 1991)
#traditional#ottoman_сlassical#kemenche#kanun#tanbur#ney#oud#violin#cello#Turkey
С XIX века турецкие композиторы стали использовать западную нотную систему для фиксации придворной музыки Османской империи. До этого произведения не записывались, а передавались из уст в уста. В результате значительная часть репертуара оказалась утрачена. Так, до наших дней дошло лишь около тридцати произведений Абдулкадира Мараги, композитора и музыковеда XIV века.
Эта запись Национального хора турецкой классической музыки представляет сохранившиеся произведения 13 поэтов и композиторов Турции. Среди них — Абдулкадир Мераги (1353-1435), Хафиз Пост (1630-1694), Гази Гирей Хан II (1554-1608), Эйюби Эбубекир Ага (1685-1759), Бухуризаде Мустафа Итри (1640-1712), Таби Мустафа Эфенди (1705-1770), Хаджи Садуллах Ага (1760-1808), Дилхаят Калфа (XVIII век), Мехмет Ага младший (конец XVIII века), Султан Селим III (1761-1808), Хаммамизаде Исмаил Деде Эфенди (1778-1846) и Мустафа Чавуш. Работы композиторов на альбоме расположены именно в таком порядке, хотя и не указаны в названиях композиций.
Помимо прочего, альбом был выпущен к 750-летию со дня рождения поэта Юнуса Эмре (1238–1320). Для османской литературы он был тем же, кем Данте был для итальянской: поэтом, преобразившим духовный опыт и язык народа в основу будущей литературы.
🔗Spotify | AppleMusic | Telegram