Для тех кто пишет расширения на 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
🌎 At the Musonoi mine in the Democratic Republic of the Congo, the mineral cuprosklodowskite forms vivid green crystals rich in uranium. This rare mineral is highly radioactive and prized by collectors, but handling it requires special care because of its radioactivity. ✨
#minerals⚡#crystals⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 At Canada’s Mount Saint-Hilaire, the mineral serandite forms pinkish-orange crystals that are so rare, top-quality specimens are found only at this site. Serandite is a sodium, calcium, and manganese silicate, prized by collectors for its vibrant color and crystal shapes. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 The world's rarest mineral is kyawthuite, a reddish-orange crystal discovered in Myanmar. Only one confirmed specimen exists, weighing just 1.61 carats, and it is made of bismuth, antimony, and oxygen. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 Tanzanite is a vivid blue-violet mineral found only in a small area near Mount Kilimanjaro, Tanzania. This rare crystal is a variety of zoisite colored by trace amounts of vanadium. The entire world’s supply comes from a mining zone just 7 kilometers long. ✨
#minerals⚡#crystals⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 In the Himalayas, rare crystal minerals like cavansite and scolecite form in volcanic rock cavities. Cavansite appears as brilliant blue clusters, while scolecite grows in needle-like sprays. Some Himalayan cavansite crystals are less than a few millimeters wide. ✨
#minerals⚡#crystals⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 Bhutanite is an exceptionally rare mineral discovered in the Himalayan mountains of Bhutan. It forms metallic blue-gray crystals and contains copper, bismuth, and sulfur. Fewer than a dozen confirmed specimens exist worldwide, making it highly prized among mineral collectors. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 In 2009, the mineral putnisite was discovered in Western Australia. This vibrant purple mineral forms tiny cubic crystals and contains strontium, calcium, chromium, sulfur, oxygen, hydrogen, and carbon. Unlike any known mineral group, putnisite’s unique chemical structure has fascinated mineralogists worldwide. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 Hidden deep in Greenland’s Ilímaussaq complex, the mineral arfvedsonite forms striking blue-black crystals. This rare silicate mineral is found mainly in alkaline igneous rocks and is prized by mineral collectors. Some arfvedsonite crystals can reach lengths over 30 centimeters. ✨
#minerals⚡#crystals⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 Some of Earth’s rarest minerals include fingerite, found only near one volcano in El Salvador, and red beryl, which forms under extreme volcanic conditions in Utah. Fewer than one red beryl crystal is found for every 150,000 diamonds. ✨
#minerals⚡#crystals⚡#geology
👉subscribe Interesting Planet
👉more Channels
🌎 In Greenland, the mineral tugtupite glows bright pink or red under ultraviolet light due to its unique crystal structure. This rare silicate forms in only a few places worldwide and is prized for use in jewelry. Tugtupite was first identified in 1962, and gem-quality stones are especially sought after by collectors. ✨
#geology⚡#minerals⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 In Pakistan’s Balochistan province, the mineral rehmeyerite is so rare that only a handful of crystals have ever been found. Rehmeyerite forms as thin, metallic blades containing selenium, and its largest specimens rarely exceed a few millimeters in length. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet
👉more Channels
🌎 The mineral cobaltite is prized by collectors for its metallic silver-gray cubes with a pinkish hue. Found mainly in Sweden, Norway, and Canada, cobaltite is a rare source of the metal cobalt, essential for rechargeable batteries and jet engine alloys. Its crystals rarely exceed 2 centimeters in size. ✨
#minerals⚡#geology⚡#crystals
👉subscribe Interesting Planet