В фреймворке 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
🪐 One of the most famous searches for alien life involves listening for signals from the direction of Tabby’s Star (KIC 8462852), a real star in the constellation Cygnus known for its strange, unpredictable dips in brightness. Scientists at the SETI Institute have pointed sensitive radio telescopes at Tabby’s Star, searching for artificial signals that could suggest advanced technology, but so far, no evidence of extraterrestrial messages has been found—leaving the nature of the star’s odd behavior a true cosmic mystery. ✨
#aliens⚡#SETI⚡#Tabby⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels