Для тех кто пишет расширения на 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
🟢¡ESTOS INVITADOS SI LE DAN PESO AL TORNEO!👀🔥
A través de sus redes sociales, la organización de FISSURE anunció a 9 de los 11 equipos invitados directos para la 🏆FISSURE PLAYGROUND 2 🤯
🔹Estos equipos son:
-🇯🇴FALCONS
-🇸🇪TEAM LIQUID
-🇪🇺TUNDRA
-🇱🇧NIGMA GALAXY
-🇧🇷HEROIC🇵🇪
-🇷🇺PARIVISION
-🇷🇺TEAM SPIRIT
-🇷🇺AURORA
-🇷🇺BB TEAM
🔸Aún falta conocer a 2 invitados directos.
-Las clasificatorias para este torneo están en curso.
-Para las clasificatorias, SA y NA es una sola región al igual que SEA y CN. 🫡
#Tinbet#esports#dota2#FISSURE#Playground
@Info_Dota2
🟢 ¡QUÉ TAL VOLTISH! 🤯🔥
🏆FISSURE PLAYGROUND - GRAN FINAL
-🇪🇺Tundra es el campeón de la FISSURE PLAYGROUND #1, remontando un 2 a 0 a favor de Falcons. 🥳 Madachyo ha demostrado que no era el problema. 😎
#dota2#esports#tinbet#fissure#playground
@Info_Dota2
🟢 ¡¿ESTA DESPERTANDO EL PRIME DE MADARACHYO?! 👀🔥
🏆FISSURE PLAYGROUND - Playoffs
-El 🇪🇺Tundra de Dyrachyo no mostró piedad alguna contra el 🇷🇺Team Spirit de Yatoro y aseguró el TOP 3 en el primer torneo internacional del año 😮
🔹TUNDRA avanza a la final de Upper Bracket.
-Team Spirit cae a la lower bracket.
Ahora se viene una partidaza por cierto. 🫢
⚔️SIGUE:
-🇷🇺BB Team vs 🇯🇴Falcons // Bo3
#esports#dota2#FISSURE#playground#Tinbet
@Info_Dota2
🟢¡SEA SE AFERRA A EL SUEÑO DORADO! 🤯🔥
🏆FISSURE PLAYGROUND - Swiss Stage
-🇵🇭Talon Esports logró voltearle la serie a la escuadra de 🇪🇺AVULUS y se convierte en el sexto clasificado a los PLAYOFFS de esta FISSURE 👀
🔹El AVULUS de Sonneiko queda eliminado del torneo.
#esports#dota2#FISSURE#playground#Tinbet
@Info_Dota2
Multipurpose Court Project
Bishoftu,Ethiopia
Construction on the new basketball court at Hibret (Tokuma) Elementary School is progressing smoothly and is nearly halfway complete. We're excited about the progress and are on track to achieve our goal.
Your support is crucial to ensure the project's successful completion.
Our goal is to create a vibrant playground for the children of Hibret School.
Play is not a privilege; it's a life skill. Every child deserves a place to play!
To contribute and support us please contact us at:
[email protected]
#Playground#AllDeserveToPlay
#Rotaract_Kuriftu
#Rotary
#100yearsofserviceinafrica
#Rotaract
#District9212
#RotaractEthiopia
Follow Us:
Facebook | Twitter | Instagram | Telegram | LinkedIn
#typescript#aurelia#cross_platform#csharp#database#desktop#dotnet#editor#electron#ide#linux#macos#playground#roslyn#tauri#windows
NetPad is a tool that lets you write and run C# code easily without creating projects. It helps you prototype, test code, visualize data, and query databases. You can use it to learn C# or experiment with new features. NetPad is available on Windows, macOS, and Linux, making it useful for developers across different platforms. It offers features like code completion, syntax highlighting, and the ability to add NuGet packages, making coding more efficient and accessible.
https://github.com/tareqimbasher/NetPad