Для тех кто пишет расширения на 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
[email protected] - Drizzle in my repo today with 2 new apps. Most prominently:
Watomatic – to help those of you still stuck at WhatsApp to leave that s(t)inking ship without being afraid "nobody can find you": it sends auto-responses to everyone writing you, telling them you've left and where to look. So: no more excuses, here's your door! https://apt.izzysoft.de/fdroid/index/apk/com.parishod.watomatic
Further running: SpaceXFollower (SpaceX events, facts, statistics) and Auxio, a nice music player, added yesterday.
Enjoy #foss#Android#apps with #fdroid!
[$] The exploitation paradox in open source
自由开源软件(FOSS)运动的核心是赋予个人和组织自由与权力,但其发展历程中,总存在试图利用FOSS谋取私利的参与者。在2026年比利时根特的配置管理营(CfgMgmtCamp)上,Richard Fontana阐述了开源的“剥削悖论”:即反复出现的危机模式,一些参与者利用规则漏洞来限制自由或在社区中获得对他人的优势。他还讨论了弥补这些漏洞的尝试,以及有必要超越许可证本身,以寻求维持自由的其他手段。
原文链接:https://lwn.net/Articles/1058031/
#开源#FOSS#社区治理#软件自由
#AIGC
Read more
Channel: FOSS Post
Members: ~2.04K
💢 Username: @fosspost
Description:
FOSS Post is a high-quality online magazine about Linux and open source software. This channel posts daily news from all over the web too. Website: https://fosspost.org
🏷 Tags: #technology
#linux#open_source#foss#technology#free_software
https://telegramchannels.me/channels/fosspost
#python#android#android_apps#f_droid#foss#free_and_op#free_and_open_source#izzyondroid#open_source#opensource
This list offers free open-source Android apps for every need—from browsers, cameras, and music players to games, tools, and F-Droid stores like Neo-Store. Get them via F-Droid or IzzyOnDroid for no ads or tracking. It boosts your privacy and freedom by ditching Google apps, letting you control your data and phone fully.
https://github.com/offa/android-foss
🕊️https://exposelsposed.pages.dev— Spread the word.
#FOSS#AgainstProprietary#Transparency#OpenTheSources#DontHide#DontSteal#DontLie#Safety#RespectAndroidCommunity#NoClosedSource