Для тех кто пишет расширения на 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 rare blue mineral painite was first discovered in Myanmar in 1951 and is so scarce that only a few hundred crystals have ever been found worldwide. Painite contains boron, zirconium, and aluminum, and transparent gem-quality stones are especially valuable to collectors. ✨
#geology⚡#minerals⚡#gemstones
👉subscribe Interesting Planet
👉more Channels
🌎 Red beryl, also called bixbite, is one of the rarest gemstones on Earth and is found almost exclusively in Utah’s Wah Wah Mountains. Its rich red color comes from trace amounts of manganese. Fewer than one red beryl is found for every 150,000 diamonds mined worldwide. ✨
#minerals⚡#gemstones⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 Discovered only in Greenland and the Kola Peninsula, rare mineral serendibite forms deep in metamorphic rocks and can display vivid blue-green hues. Gem-quality serendibite is so scarce that a single carat can cost over $2,000. ✨
#minerals⚡#geology⚡#gemstones
👉subscribe Interesting Planet
👉more Channels
🌎 Blue garnet is one of the rarest gemstones on Earth, discovered in Madagascar in the late 1990s. Unlike most garnets, it changes color—from blue-green in daylight to purple-red under incandescent light—due to trace amounts of vanadium absorbing light differently. Only tiny amounts have been found so far, with most crystals under one carat. ✨
#geology⚡#minerals⚡#gemstones
👉subscribe Interesting Planet
👉more Channels
🌎 One of the rarest crystals on Earth is musgravite, first discovered in Australia’s Musgrave Ranges in 1967. Transparent musgravite gemstones are extremely scarce, with fewer than 20 certified specimens reported worldwide. ✨
#minerals⚡#gemstones⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 The mineral grandidierite is one of the world’s rarest gemstones and was first discovered in Madagascar in 1902. Its blue-green crystals get their striking color from traces of iron, and transparent gem-quality stones are so scarce that most museums only display tiny specimens. ✨
#minerals⚡#gemstones⚡#geology
👉subscribe Interesting Planet
🌎 The mineral taaffeite was discovered accidentally in 1945 by gemologist Richard Taaffe, who bought a mislabeled gemstone in Dublin. This rare crystal is prized for its lavender color and is mostly found in Sri Lanka, Myanmar, and Madagascar. Fewer than 50 verified cut taaffeites exist worldwide. ✨
#minerals⚡#gemstones⚡#geology
👉subscribe Interesting Planet
🌎 An ancient “rainbow” mineral called ammolite forms from fossilized ammonite shells. With its dazzling reds, greens, and blues, ammolite is one of the world’s rarest gemstones, found mainly in Canada’s Rocky Mountains. ✨
#geology⚡#fossils⚡#gemstones
👉subscribe Interesting Planet
🌎 In Australia’s opal fields, some opals contain ancient fossilized bones or shells, perfectly preserved in dazzling rainbow stone. This rare “opalized fossil” forms as minerals slowly replace bone, creating a sparkling record of prehistoric life. ✨
#fossils⚡#minerals⚡#gemstones
👉subscribe Interesting Planet
🌎 The mineral jeremejevite forms pale blue, yellow, or colorless crystals and is among the world’s rarest minerals. Discovered in Namibia in 1883, it is an aluminum borate mineral that forms in granite pegmatites. Transparent gem-quality jeremejevite is so scarce that it can sell for over $2,000 per carat. ✨
#minerals⚡#crystals⚡#gemstones
👉subscribe Interesting Planet
🌎 Alexandrite is a rare mineral that changes color under different lighting—appearing green in daylight and red under incandescent light. This gemstone was first discovered in Russia’s Ural Mountains in 1830, and crystals large enough for jewelry are extremely scarce worldwide. ✨
#alexandrite⚡#minerals⚡#gemstones
👉subscribe Interesting Planet
👉more Channels