Для тех кто пишет расширения на 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
🗓️ On January 26-30, a delegation from the Russian Ministry of Defence 🇷🇺 participated in a middle planning conference to prepare a joint exercise of the three experts' working groups of the ASEAN Defence Ministers' Meeting Plus (#ADMM-Plus) in Banten Province, Indonesia 🇮🇩.
🔹️The event allowed participants to exchange views on regional security issues and share Russia's position on organizing the combined field multilateral exercise.
📍Banten Province, Indonesia 🇮🇩
🗓 On November 21, Deputy Minister of Defence of the Russian Federation, Colonel General Aleksandr Fomin🇷🇺 participated in the 11th ASEAN Defence Ministers’ Meeting Plus (#ADMM-Plus) in Vientiane, the Lao PDR 🇱🇦.
🔹️In his address to ADMM Plus, the Russian Deputy Defence Minister outlined Russia's position on the most pressing security issues facing the world and the Asia-Pacific region.
🔹️At the event, ASEAN Member States confirmed their readiness to work with the Russian Ministry of Defence in key areas of military cooperation of mutual interest.
🔹️On the sidelines of the meeting, Colonel General Aleksandr Fomin held bilateral meetings with the heads of the defence ministries of Vietnam 🇻🇳, Laos 🇱🇦, Malaysia 🇲🇾 and East Timor 🇹🇱 to discuss in detail bilateral military cooperation as well as prospects for cooperation in regional multilateral formats, in particular ADMM Plus.
#RussiaADMMPlus
🗓On May 11, Ambassador of the Russian Federation to #ASEAN H.E. Mr. Evgeny Zagaynov 🇷🇺 paid a courtesy call on the Permanent Representative of Myanmar to ASEAN H.E. Ambassador Aung Myo Myint 🇲🇲.
🌏 The diplomats discussed ASEAN-Russia agenda, as well as cooperation within the framework of ASEAN-led mechanisms including #ADMM-Plus where Russia and Myanmar are currently co-chairing Experts' Working Group on Counter Terrorism.
#RussiaASEAN#ASEANRussia
Completing his mission in Jakarta Russian 🇷🇺 Ambassador to #ASEAN H.E. Mr. Alexander Ivanov sums up the work being done during his tenure in the article "ASEAN does matter to Russia. A lot".
💬Indeed, for the last several years Russia became an indispensable actor in the Asia Pacific. Our #ASEAN friends understand and appreciate a constructive stabilizing role of Russia 🇷🇺 with no hidden agenda in the region. Our philosophies of international relations, based on the principle of sovereign equality of nations, are similar.
❗️Our practical cooperation reached a status of strategic partnership in 2018, fixed during the Summit of our leaders in Singapore. During these years in addition to existing areas of cooperation, we have managed to launch and actively promote new ones, including Consultations of the High Representatives for Security Issues, Dialogue on ICT Security-related issues,meetings of Tourism ministers and others. In the end of 2021 we successfully held the first ASEAN-Russia Naval Exercises (#ARNEX) in the Indonesian territorial waters. In 2022 we organized a number of events within the framework of ASEAN-Russia Year of Scientific and Technical Cooperation. Dozens of joint projects were implemented and financed by Russia 🇷🇺 in various spheres ranging from agriculture to training of ASEAN health experts and specialists of law-enforcement agencies. We continued to develop practical cooperation between ASEAN and Eurasian Economic Union as well as with Shanghai Cooperation Organization, thus moving the processes of integration of integrations across the huge Eurasian continent.
🔻We firmly believe that #ASEAN-centered mechanisms of cooperation, created in the last 55 years and based on the principles of equality, mutual respect and constructive engagement, including the #EAS, #ARF and #ADMM-Plus, played the pivotal role in stabilizing the region, balancing the interests of all big players and promoting mutual trust, which are prerequisites of the Asia Pacific phenomenon of becoming the main engine of the global economic growth. For many decades there were no hot military conflicts in the region. Largely it is the merit of #ASEAN wisdom and its leading role in shaping multilateral cooperation here. That is why Russia strongly supports #ASEAN centrality in the region not only in words but in deeds. 🤝
🔻There are many internal and external challenges for #ASEAN in the turbulent situation of strategic ambiguity. I am sure that the current Indonesian 🇮🇩 Chair will be able to navigate the “ASEAN ship” through the troubled waters of the Indian and Pacific oceans.
🔗https://www.thejakartapost.com/opinion/2023/02/06/asean-does-matter-to-russia-a-lot.html
🗓On March 8, on the sidelines of the #EAS SOM Meeting in Jakarta, Deputy Minister of Foreign Affairs of the Russian Federation H.E. Mr. Andrey Rudenko🇷🇺 held a meeting with the Director General for ASEAN Cooperation of the Ministry of Foreign Affairs of the Republic of Indonesia H.E. Mr. Sidharto R. Suryodipuro🇮🇩.
🤝The diplomats reaffirmed their intention to consolidate efforts in order to strengthen the ASEAN-led security architecture and increase the efficiency of its mechanisms by building up inclusive practical cooperation.
They touched upon key matters of ASEAN-Russia Strategic Partnership agenda, further strengthening of cooperation within the framework of ASEAN-led fora such as the #EAS, #ARF and #ADMM-Plus, as well as discussed topical issues and regional developments in the Asia-Pacific.
#RussiaASEAN#ASEANRussia#EAS#EASSOM
🗓On 15–16 February, the delegation of the Russian Ministry of Defence🇷🇺 took part in the regular meeting of the #ASEAN Defence Senior Officials’ Meeting-Plus Working Group (#ADSOM-Plus WG) in Jakarta, Republic of Indonesia🇮🇩.
The participants discussed the progress achieved by the seven #ADMM-Plus Experts' Working Groups (EWGs) as well as plans for the next cycle 2024-2027.
The Russian delegation briefed the meeting on key threats to regional security and outlined ways towards effective regional defence cooperation. The meeting was also informed on the current progress of Russia's and Myanmar's Co-Chairmanship of the ADMM-Plus EWG on Counter Terrorism and preparations for the multilateral counter-terrorism table-top and field exercises planned for September 2023 in Russia🇷🇺.
The meeting reaffirmed readiness of the ADMM-Plus countries to cooperate in all areas of mutual interest. On the sidelines of the event Russian delegation held a number of bilateral meetings.
#ADMMPlus#ADSOMPlusWG