В фреймворке 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
Soy el tipo de persona que si alguien piensa que soy un tonto, entonces me comporto como un tonto delante de esa gente. Nunca sentí la necesidad de demostrar nada. Si alguien ya se ha formado una opinión incorrecta sobre mí, entonces, por el amor de Dios, que la confirme. Estaré encantado de confirmarles su error.
#KurtCobain
Прошлая неделя была настолько насыщена событиями, что я ни чего не успел рассказать.
Исправляюсь.
В четверг был на ежегодном концерте, посвящённый дню рождения Курта Кобейна.
Проорался и и попрыгал под композиции нирваны сполна, а что ещё нужно 🤟
I'm not like them, But I can preten
#Nirvana#KurtCobain#Cobain
Семдянкин вещает 🎸
https://t.me/SemdPro