Для тех кто пишет расширения на 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
#DasturlashHayoti#LearnToCode#Programmer
Har bir dasturchi bilishi kerak bo‘lgan 5 ta bepul manba
🆓Pul to‘lamasdan bilim olishning eng zo‘r manbalari:
1️⃣FreeCodeCamp — front-end’dan tortib back-end’gacha
2️⃣roadmap.sh — qaysi yo‘nalishdan boshlashni aniq ko‘rsatadi
3️⃣Frontend Mentor — haqiqiy dizayn asosida kod yozish mashqi
4️⃣CSS Battle — o‘yin orqali CSS o‘rganasiz
5️⃣DevDocs — barcha texnologiyalar hujjatlari bitta joyda
Bilim — eng yaxshi investitsiya. Ayniqsa, pulsiz bo‘lsa yanada yoqimli 😄
Shunaqa postlar davom etsin desangiz, ulashib qo‘ying — birga o‘rganamiz! 💪
💻@dasturlash_hayoti— Dasturchilar uchun eng kerakli maslahatlar va foydali kontent
#SpringBoot#RESTAPI#BackendDevelopment#CodeWithMosh#Java#StripeIntegration#CloudDeployment#LearnToCode
🚀 Ready to take your backend skills to the next level?
🔗Spring Boot: Mastering REST API Development🎓
- Learn to build clean, secure RESTful APIs
- Add authentication, role-based access, and JWT security 🔒
- Integrate Stripe for real payment processing 💳
- Deploy your app and database to the cloud ☁️
- Apply industry best practices for production-ready code 🛠
👉 Join now @repo_science and start building real-world projects like a pro!
YES! 🙌 It's a wrap! 🥳
The HaraCoders Bootcamp training, brought to you by the awesome Rotaract Club of Kuriftu 🤝, BuildX Ethiopia , Sira Ale, and Addis Ababa University College of Veterinary Medicine and Agriculture , has been a HUGE success!
We're sending out waves of gratitude to everyone involved and a BIG congrats to our fantastic trainees! 🎉
So proud of you all! 🔥
Stay tuned... round 2 might be closer than you think! 😉🚀
#AddisCoders#BuildXEthiopia#TechForAll#EmpowerTheFuture#CodingBootCamp#EthiopianTech#LearnToCode#CodingForChange
#Rotary
#Rackuriftu
#100yearsofserviceinafrica
#Rotaract
#District9212
#RotaractEthiopia
🚀 Exciting News! 🚀
The AddisCoders BootCamp is brought to you by BuildX Ethiopia in partnership with Rotaract Kuriftu, SERRALE, and Addis Ababa University! 🎓💻
Together, we’re empowering Ethiopian youth with hands-on web development skills to build the future of tech! 🔥
Stay tuned for more updates!
#AddisCoders#BuildXEthiopia#TechForAll#EmpowerTheFuture#CodingBootCamp#EthiopianTech#LearnToCode#CodingForChange
#Rotary
#Rackuriftu
#100yearsofserviceinafrica
#Rotaract
#District9212
#RotaractEthiopia