В фреймворке 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
《原神》第二张挪德卡莱篇OST《朔望凝待之庭》现已正式上线
亲爱的旅行者,《原神》第二张挪德卡莱篇OST《朔望凝待之庭 Where Roads Are Pledged to Cross》现已正式上线。
欢迎旅行者前往下列平台,收听完整版OST。
>>>点击前往QQ音乐收听<<<
>>>点击前往酷狗音乐收听<<<
>>>点击前往Apple Music收听<<<
专辑分为《霜尽春归 Nordic Spring》、《早至的黎明 Tidig Gryning》与《未亡者的悼亡 Requiem for the Living》3张分碟,共收录73首由HOYO-MiX音乐团队为《原神》挪德卡莱地区创作的原声音乐。
source@YuanShen#OST
С раннего возраста безумно люблю академический (да и не только) авангард, потому саундтрек «Битвы за битвой» в моем плейлисте со дня премьеры. Невероятная динамика. Очень надеюсь на Оскар для композитора.
#ost