В фреймворке PyQt (и PySide тоже) часто встречается настройка чего-либо с помощью так называемых флагов.
widget.setWindowFlags(Qt.Window)
Взаимодействие нескольких флагов делается с помощью бинарных (или побитовых) операторов.
Несколько флагов можно указать с помощью оператора "|"
list_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
исключить флаг из уже имеющегося набора можно так
list_item.setFlags(list_item.flags() ^ Qt.ItemIsEnabled)
Добавить новый флаг к имеющимся можно так
list_item.setFlags(list_item.flags() | Qt.ItemIsEnabled)
А проверка наличия делается так
is_enabled = item.flags() & Qt.ItemIsEnabled > 0
Почему именно так? Всё дело в том как именно работают побитовые операторы. Но об этом в следующем посте.
#qt
8️⃣ 𝘆𝗶𝗹 𝗶𝗻𝘁𝗶𝘇𝗼𝗿𝗹𝗶𝗸 𝗯𝗶𝗹𝗮𝗻 𝗸𝘂𝘁𝗶𝗹𝗴𝗮𝗻 𝗵𝗼𝗺𝗶𝗹𝗮
Go'zal ayolimizni hursandchiligini so'z bilan tariflay olmaymiz
⠀
Sog' salomat Kichkintoylarini bag'rlariga bosib olishlari uchun duo qilamiz, va kichkintoy tug'ilguniga qadar bizning tekshiruvimizda bo'ladi, qo'limizdan kelgan barcha yordamni ayamaymiz
⠀
Barcha oilalar, ayollamizga shunday baxtli kunlar nasib etsin!
⠀
#ekoandijon#ekouzbekistan#eku#экоузбекистан
#ObodYurt#Plogging#EkoAndijon#TozalikOyligi#Ekovolontyorlar
🌿✨Andijon shahrida “OBOD YURT” ekologik aksiyasi start oldi!
Bugun Alisher Navoiy bog‘ida viloyat miqyosidagi keng ko‘lamli ekologik aksiya boshlandi. 💚
🏃♀️🏃♂️ Yuzlab yoshlar plogging — chiqindilarni terib yugurish aksiyasida faol ishtirok etish uchun jamlandilar.
Tadbirda viloyat prokurorining o‘rinbosari U.Ch. Utayev, mutasaddi tashkilotlar vakillari hamda 200 nafarga yaqin #EkoVolontyorlar ishtirok etmoqda.
♻️ Aksiya shahar markazidagi 4 ta markaziy ko‘cha bo‘ylab o‘tkazilmoqda.
🎯 Maqsad — toza va obod Andijonni yaratish, aholining ekologik madaniyatini oshirish hamda atrof-muhitni asrashga bo‘lgan e’tiborini kuchaytirish. 💪🌏
Andijon viloyati Ekologiya, atrof-muhitni muhofaza qilish va iqlim o‘zgarishi boshqarmasi matbuot xizmati