В фреймворке 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
Jusepe de #Ribera
(Spanish, 1591–1652).
Saint Joseph with the Flowering Rod,
early 1630s.
Oil on panel,
46 × 35 3/4 in. (116.8 × 90.8 cm) frame: 57 1/4 × 47 1/4 × 3 1/2 in. (145.4 × 120 × 8.9 cm). Brooklyn Museum
🇪🇺#UE - Le decisioni sui vicepresidenti esecutivi designati, in audizione oggi, sono posticipate tutte a domani o alla prossima settimana. Secondo quanto apprende l'AGI da fonti parlamentari, i leader dei gruppi di maggioranza si incontreranno per affrontare la questione, in particolare alla luce del braccio di ferro sul via libera a Raffaele #Fitto e a Teresa #Ribera.
@UltimoraPolitics
#UE#Europa
Manfred #Weber (#CSU|EPP), Iratxe #García (#PSOE|S&D) e Valérie #Hayer (#Renaissance|RE) hanno raggiunto un accordo per sbloccare le nomine a Commissari Europei di Teresa #Ribera (PSOE), Raffaele #Fitto (#FdI|ECR) e Olivér #Várhelyi. Inoltre, i tre si impegnano in un patto per una coalizione pro-Europa nell'Europarlamento.
@OsservatorioEsteri