В фреймворке 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
XVI
Зазеркалье 🕳
По эту сторону - бетон и сталь.
По ту - лишь тихий ответ воды.
📎 272
📆 09_2025
🗺 г.Гусев, Калининградская область
📷 Olympus OM-1/ Seikanon MC 28/2.8
🎞 Kodak Double-X 5222
🧪 D-76 1+1, 20°C - 10 мин
📌 iso 250
P.S. Это удивительное место мне показала Оля @petrO_design
#olympusom1
#kodak
#kodakdoublex
Хоста 🌿
Влюбилась в эти листья.
Вечером, собираясь домой, я увидела их, подсвеченными лучами уходящего солнца, — и не смогла пройти мимо.
📎 267
📆 08_2025
🗺 п. Светлое, Калининградская область
📷 Olympus OM-1/ Seikanon MC 28/2.8
🎞 Kodak Double-X 5222
🧪 D-76 1+1, 19°C - 11.15 мин
📌 iso 250
#olympusom1
#kodak
#kodakdoublex
🕷
Во всем есть свой порядок и своя структура. Даже в беспорядке.
📎 198
📷 Зенит 11 / Гелиос 44М 2/58
🎞 Kodak Double-X 5222
📆 09_2024
🧪 Пародинал 1+50, 21°С - 8 мин
📌 iso 250
#zenit11
#kodak
#kodakdoublex