Для тех кто пишет расширения на 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
We present you the Coelacanths (Latimeria spp.) They were once thought extinct, only known from fossils — until living specimens were found. Two living species are known:
L. chalumnae: western Indian Ocean waters.
L. menadoensis: Indonesian waters.
Both species are considered threatened. Individuals may live 50–70 years.
[Read more here]
@googlefactss
#Coelacanth#LazarusSpecies#MarineLife#Conservation#Biodiversity#CriticallyEndangered
🦊 ETHIOPIAN WOLF: THE LAST 500
ብር ተኵላ፡ የመጨረሻዎቹ 500
Beauty so rare, it hurts to watch. 💔
━━━━━━━━━━━━━━━━
💔 THE RAREST CANID ON EARTH
ብር ተኵላ (Bir Tekula) - "Silver Wolf"
Only 500 individuals left. In the entire world.
ALL living ONLY in Ethiopia.🇪🇹
If they disappear from Ethiopia - they disappear FOREVER.
━━━━━━━━━━━━━━━━
🔥 WHAT MAKES THEM SPECIAL
🎨APPEARANCE:
• Red-rust coat shimmering in sun
• White chest, long elegant legs
• Amber eyes, intelligent gaze
• Built for high altitude (3,000-4,500m!)
📍HABITAT:
• Afro-alpine meadows
• "Tundra at equator" (Sanetti Plateau)
• Freezing nights, thin air
• Extreme conditions
🎯BEHAVIOR:
• Hunts giant mole rats
• Diurnal (rare for canids!)
• Social packs, monogamous pairs
• Cooperative breeding
━━━━━━━━━━━━━━━━
💪 GRACE IN MOTION
Watch the video. 🎬
Slow motion reveals perfection:
Every step - calculated
Every leap - balletic
Every landing - акробат's skill
At 4,000m altitude where humans struggle...
The Ethiopian Wolf THRIVES.
"የተራራዎች ባለቤት" (Master of the mountains)
━━━━━━━━━━━━━━━━
🇪🇹 WHY THIS MATTERS
💚FOR ETHIOPIA:
• Symbol of unique biodiversity
• National pride
• Ecotourism jobs
• Part of identity
🌍FOR THE WORLD:
• Irreplaceable genetic heritage
• Ecosystem health indicator
• Reminder: extinction is forever
"ብር ተኵላ የኢትዮጵያ ኩራት ነው"
(Ethiopian Wolf is Ethiopia's pride)
━━━━━━━━━━━━━━━━
😢 THE THREATS
❌ Habitat loss (agriculture expansion)
❌ Disease from domestic dogs (rabies - biggest threat!)
❌ Climate change impacts
❌ Genetic bottleneck (small population)
But there is HOPE.💚
━━━━━━━━━━━━━━━━
💪 CONSERVATION IN ACTION
🛡️WHAT'S BEING DONE:
✅ Ethiopian Wolf Conservation Programme
• Vaccination campaigns
• Community education
• Research & monitoring
✅ National Parks protection
• Ranger patrols
• Habitat preservation
✅ Community involvement
• Local guardians
• Tourism benefits shared
✅ International support
• Wildlife organizations
• Research partnerships
━━━━━━━━━━━━━━━━
🌟 WHAT YOU CAN DO
💚SPREAD AWARENESS:
Share this post - most don't know they exist!
📸RESPONSIBLE TOURISM:
Visit Bale/Simien Mountains
Support local ecotourism
💰SUPPORT CONSERVATION:
Donate to Ethiopian Wolf Conservation Programme
🗣️SPEAK UP:
Rare species need advocates
"500 ብቻ። እያንዳንዱ አስፈላጊ ነው።"
(Only 500. Each one matters.)
━━━━━━━━━━━━━━━━
💔 WHICH FUTURE?
Your grandchildren ask:
"What was an Ethiopian Wolf?"
You answer:
"They used to run..."😢
OR
"They still run free - and WE helped save them!"💪🇪🇹
Which future do YOU choose?
━━━━━━━━━━━━━━━━
🦊 NOT A STATISTIC
500 beating hearts.
500 graceful hunters.
500 reasons to fight.
Ethiopia's gift to the world.
The world's responsibility to protect.
"ብር ተኵላ - የዓለም ውበት"
(Ethiopian Wolf - world's beauty)
━━━━━━━━━━━━━━━━
Watch them run. 🎬
Feel their grace.
Understand their rarity.
Then ACT.💪
Because 500 is not a lot.
But it's enough to save.
If we start NOW.⏰
━━━━━━━━━━━━━━━━
🌍 ETHIOPIA | ЭФИОПИЯ | ኢትዮጵያ
📱@ethiopia telegram
#EthiopianWolf#Save500#CriticallyEndangered#BaleMountains#WildlifeConservation#EthiopiaPride#ProtectNature#EndangeredSpecies