В фреймворке 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
⚡ PRIME X870-P WIFI — Скорость, производительность и стабильность.
💥 14+2+1 фаз питания (80A) с массивными радиаторами.
🤖 AI Solutions — интеллектуальная оптимизация системы.
🚀 DDR5 с AEMP — максимальная производительность памяти.
📶 WiFi 7, USB-C 10 / 40 ГБит/с, PCIe 5.0 — быстрые интерфейсы.
🛠️ EZ PC DIY — простой процесс сборки.
#ASUS#X870#WiFi7
💥Placa Base ASUS Prime Z890-P WiFi
Potencia y rendimiento para tu PC navideño
✅OFERTA: 213.89€
❌ Antes: 309.9€
💰Ahorras un 31%🔥
Compatible con GPU de última generación y tecnología DDR5
👉 Mejora tu PC esta Navidad
#placabase#asusprime#tecnologia#gpu#ddr5#wifi7#thunderbolt4#navidad
🛰️Oferta publicada en Tecnología