В фреймворке 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
🪙 32,137 #BTC ($2.18 billion) went from the wallet of the #Mt․Gox exchange that collapsed in 2014 to an unknown address — the market reacted with a drop, suggesting that payments to the exchange's creditors could begin at any moment.
⚫️The Black Swan arrived unexpectedly... wait for new comments, despite the unpleasant surprise, the situation may become an opportunity to enter the market and make money on non-negative growth.
😙 The reasons for the fall of the # bitcoin exchange rate below $61,000
The unemployment rate was 4.3%, which is higher than expected, indicating a possible recession
The Bank of Japan raised the interest rate for the first time in 17 years, which led to an outflow of investments from risky assets
Increased geopolitical tensions (fear of a major world war)
😏Continued distribution of #BTC from #Mt.Gox and #Genesis