Для тех кто пишет расширения на 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
Breaking: A Boeing 737 plane that plummeted into a Chinese hillside in 2022, killing all 132 people on board, had its fuel supply cut mid-flight, according to newly released data by the US National Transportation Safety Board (NTSB).
Findings by the NTSB say that the fuel switches on both engines of the China Eastern flight were moved to the "cut-off" position while it was at a cruising altitude of 8,839m (29,000ft) — exactly like the AI171 Air India crash in Gujarat last year.
China has yet to release a final report on the incident, citing national security concerns. #Aviation
BBC Article
GPS Renewables started construction on India's first Ethanol-to-Jet (ETJ) Sustainable Aviation Fuel (SAF) plant in Pudimadaka, Andhra Pradesh, under an NTPC Green Energy EPC contract. Using Lummus Technology and Xytel India's engineering, the facility at NTPC's Green Hydrogen Hub will produce 1,800 tonnes per annum of SAF and renewable diesel. The process converts CO2-derived ethanol via ethylene conversion, oligomerisation, and hydroprocessing. This project advances India's sustainable aviation fuel scaling and transport sector decarbonization goals.
Source
#Aviation
India is redefining the rules of the game with its upcoming airport privatisation plans, aiming to curb monopolistic tendencies in the aviation sector. The govt is laying down new ground rules to promote a healthy competitive environment.
Source
#Aviation
IndiGo resumes direct India–China flights with Delhi–Guangzhou service; first landing on Apr 28 restores connectivity after ~4–5 year gap. Airline operates daily routes using A320 aircraft, expanding to Shanghai and Kolkata routes with ~21 weekly departures.
#Aviation
https://t.co/3nGRpvMboR
🛠️ AIESL plans to expand the Nagpur aviation maintenance facility into a major MRO hub.
📍 The company is seeking EASA certification to service Airbus aircraft for global airlines.
✈️ The site has already completed 240+ maintenance checks on Boeing and Airbus fleets.
#Aviation
https://t.co/GosIlxNf56
Embassy of France in India
"With effect from 10 April 2026, Indian nationals possessing an ordinary passport are no longer required to hold an airport transit visa when passing through the international zone of airports located on French territory. This measure applies to passengers remaining in the international zone during a layover at a French airport en route to a third country."
#Aviation
✈️ India's newest regional airline Star Air will launch 38 weekly flights to Mundra from 25 April.
🌐 Direct links to Mumbai, Hindon, Goa (Mopa) & Surat plus one-stop routes.
🪑 Adds 4,100+ weekly seats, boosting regional connectivity.
#Aviation
https://t.co/0Ys3hXULvs