Для тех кто пишет расширения на 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
🚢Kuok Maritime усиливает флот: “Pac Libra” и “Pac Leo” введены в эксплуатацию.
Сингапурская Pacific Carriers Limited (PCL), входящая в группу Kuok Maritime, приняла в эксплуатацию два новых многоцелевых судна — “Pac Libra” и “Pac Leo”.
Суда стали первыми в серии 40 000 DWT, разработанной совместно с сингапурской верфью PaxOcean Group. Строительство осуществляется на мощностях PaxOcean Zhoushan под классом American Bureau of Shipping (ABS).
Основное назначение — перевозка проектных грузов, при этом суда способны работать и в сегментах сухих и навалочных грузов, расширяя коммерческую гибкость оператора.
Дедвейт: 40 000 тонн, вместимость трюмов: 48 486 куб. м. Конструктивно предусмотрена уникальная конфигурация сдвоенных кранов и открытая палуба для тяжелых и негабаритных грузов. Суда сертифицированы для перевозки IMDG-грузов, оснащены гидравлической системой твиндеков и энергоэффективными решениями.
Главная энергетическая установка — Hyundai-MAN B&W 6S50ME-C9.7, вспомогательные двигатели — Yanmar. Соответствие требованиям IMO Tier III по NOx, возможность работы на MGO и HSFO. Суда готовы к использованию СПГ в качестве основного топлива и могут быть дооснащены системой накопления энергии в рамках стратегии декарбонизации PCL.
Судно “Pac Libra” уже приступило к рейсам: первый заход состоялся в Тутикорине (Индия) с грузом лопастей офшорных ветрогенераторов для последующей отправки в Северную Америку. Далее судно работало на маршрутах Южной Атлантики.
Проект отражает стратегию Kuok Maritime по усилению позиций в сегменте проектной логистики и диверсификации грузовой базы на фоне роста спроса на heavy lift и энергетическую инфраструктуру.
📌Kuok Maritime Group — сингапурская морская группа, основанная в 1975 году, объединяет судоходные, офшорные и логистические активы. Является частью Kuok Group, контролируемой семьёй Куок (основатель — Роберт Куок).
#ProjectCargo#KuokMaritime#PCL#MultipurposeVessels#ShippingIndustry
#Italia🇮🇹
#Comunali
#Genova
A Genova, unico capoluogo di Regione al voto, i candidati sono 7.
Il centrodestra corre con Pietro #Piciocchi, sostenuto da Fratelli d'Italia (#FdI|ECR), Forza Italia (#FI|PPE), Lega (#LSP|PfE), Noi Moderati (#NM|PPE|PPCE), Unione di Centro (#UdC|PPE), Nuovo PSI (#NPSI|PPE) e una lista civica.
Il centrosinistra corre con Silvia #Salis, sostenuta da Partito Democratico (#PD|S&D), Movimento 5 Stelle (#M5S|LEFT), Alleanza Verdi e Sinistra (#AVS|G/EFA|LEFT) e 2 liste civiche.
Altri candidati sono:
- Mattia #Crucioli, sostenuto da Uniti per la Costituzione (#UpC|Pacifisti);
- Raffaella #Gualco, sostenuta da una lista civica;
- Antonella #Marras, sostenuta da una lista che include Rifondazione Comunista (#PRC|LEFT) e #PCI|Estrema sinistra;
- Cinzia #Ronzitti, sostenuta dal Partito Comunista dei Lavoratori (#PCL|Estrema sinistra);
- Francesco #Toscano, sostenuto da Democrazia Sovrana e Popolare (#DSP|Grande tenda populista, sovranista ed euroscettica).
@TuttoElezioni