Для тех кто пишет расширения на 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
#frilans
Ziyo kitoblar do'koni uchun dizayn tayyorladik!
🌙 Insha'alloh 23-mart sanasidan Ramazon oyi boshlanishi kutilmoqda. Shu sababli buyurtma asosida @ziyouzyaypan uchun «Ramazon Taqvimi» ni tayyorladik.
🗒 Azizlarga saharlik, iftorlik vaqtlarini hamda duolarni eslatib turishda yordamchi bo'ladi degan umiddamiz.
☺️ Taqvimlarimiz sizgacha yetib borsa va foydasi tegsa, duolaringizda bizni ham eslab qo'yishni unutmang!
📞 Dizayn xizmatlari uchun:
+998990009627 | @Ibrohimjon_65
@ITCenter_Yaypan
Kwork'da profil ochib qoʻydim. Bir ikkita ishlardan yengillab olsam, boshida kichikroq buyurtmalar olishga harakat qilib koʻrishim mumkin.
Masalan, boshida mobil dizaynlarga aloqador buyurtmalarga eʼtiborimni qaratishim mumkin.
— Mana buyerda aytilgan dasturchi aka esa, bitta proektni kelishib qoʻyib, 4-5 oydan beri, mijozdan feature'lar qoʻshtirib ketayotgan ekan. Yaʼniki, oylik emas, bitta summaga (fixed) kelishilgan proektni qoʻshimchalar qoʻshish bilan ishlab borayotgan ekanlar.
🎚️ Shu uchun mijoz bilan kelishuvni puxta qilish kerak, iloji boricha dizayn boʻyicha buyurtmani MVP bosqichiga deb kelishish kerak yoki qoʻshiladigan feature'larni oldindan aniqlab olib, shundan chiqmay ishlash kerak.
@suxrobblog » #kwork#frilans
💻Kwork.ru bo‘yicha fikrlarimni bo'lishishda davom etaman...
Hozirda bir mijoz bilan faol tarzda ishlayapman. Bundan tashqari, yaqinda yana bir mijozdan 5 ta loyiha chiqdi (har biri taxminan 30 000± rubl atrofida edi), lekin hozircha ularni rad etdim. Sababi, avval mavjud mijozlarimning ishini tugatib bermoqchiman. Ularga, hozirgi ishlarim tugashi bilan ularning loyihalarini olishim mumkinligini ham aytib qo‘yganman.
Umuman olganda, Kwork platformasida ishlash menga deyarli qiyinchilik tug‘dirmayapti. Faqat bitta masala bor, rus tilini yaxshilab o‘rganishim kerakligini his qilyapman 😅. Ko‘p terminlarni bilmayman, ba’zan oddiy yozishmalarda ham qiynalib qolyapman. Shuning uchun rus tilini ham asta-sekin o‘rganib borishim kerak.
(O‘zbek tilidan tashqari yana 3 ta til bo‘lyapti-a, karl! 😄)
Mijozimning o‘zi ham samimiy va ochiqko‘ngil inson ekan. Suhbat davomida, komplementlar qilib turibdi. To‘g‘risi, ularning budjeti ish hajmiga nisbatan ancha past narxda, lekin men baribir loyihani bajarib beraman deb aytganman. Jarayonlar cho‘zilib ketsa yoki menga minusga ketsa ham, so'zimda turib, ishni oxirigacha yetkazish niyatidaman.
Shu o‘rinda aytishim kerakki, mijozim ham suhbatda: “Ishni tashlab ketasiz deb o‘ylagandim” degandek gapirdi. Endi esa menga ishonch bildirayotgani sezilib, komplement qilib turibdi. Ishqilib, buncha maqtovdan keyin qo‘lim ishga bormay qolmasa bo‘ldi edi 😄
Xulosa qiladigan bo'lsak:
Kishi aytgan gapi va olgan mas’uliyati uchun javob bera olishi kerak.
Agar bunga tayyor bo‘lmasa, “bu ishga aqlim yetmaydi” deb boshqa yo'lni tanlagani afzal. Ishning sifati ham, obro‘si ham shundan boshlanadi.
@suxrobblog » #kwork#frilans#mijoz
#IT_Center#frilans
Bismillah deb frilanserlik faoliyatimizni ham boshlayapmiz
🤝 Eng avvalo keysimizni tumanimizdan boshlashga qaror qildik.
Tuman Istirohat bog'ining SMM xizmatini hech qanday moddiy manfaatlarsiz yuritishni boshladik.
☺️ Hozircha logo brending hamda kanal tayyor bo'ldi. insha'Allah rejalar katta.
SMM'dan xabari bor, media sohasida iqtidorga ega yoshlarni jamoamizga taklif etamiz.
✋ Bizga kerak:
– SMM'chi;
– Grafik dizayner;
– Video-montaj ustasi;
– Mobilograf va yana boshqalar
Havaskor yoshlarni ham qabul qilamiz. Bilganlarimizni o'rgatib, tajriba almashamiz.
🟢IT Center'da kutamiz
*Loyiha hech qanday moddiy manfaatlarni ko'zda tutmaydi!
@yaypanpark🎡#yaypanpark
@ITCenter_Yaypan – tumanimiz rivoji uchun