В фреймворке 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
🇲🇽 Un incendie s'est déclaré dans un dépôt de coke de la raffinerie Olmeca, située à Dos Bocas, dans l'État de Tabasco, dans le sud du Mexique, a annoncé la compagnie pétrolière et gazière publique Pemex sur le réseau social X.
#mexique#raffinerie#incendie
🇷🇺🇺🇦 À Touapsé, dans le sud-ouest de la Russie, la lutte contre un incendie dans une raffinerie de pétrole et contre les conséquences d’une fuite de produits pétroliers causée par une attaque de drone des forces armées ukrainiennes se poursuit, a déclaré le gouverneur de la région de Krasnodar, Veniamine Kondratiev, sur sa chaîne Telegram. La situation, selon lui, est difficile mais reste sous contrôle.
#russie#touapsé#incendie#raffinerie