В фреймворке 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
🇷🇺🔩🔩🔩 Лобаев и магазины PMag 10
к посту: https://t.me/threeDguns/6944
На картинке у Лобаева взят .308 Magpul PMag 10 и растянут до 20-ки.
В общем странно, что у такого производителя нет САПР модели подходящего размера и накой его надо растягивать. 🤷♂️
Просто врезалось в глаз. 👁
Владислав, свистите... мы на помощь придём ;)
#rifle#lobaev
🇺🇸🔩🔩🔩 3Д Банка 3 в 1
MFMD — это уникальная система, сочетающая дульный тормоз, пламегаситель и глушитель в одном дизайне, и это, без сомнения, одна из самых упоротых систем, которые доводилось видеть. 👀
На его фоне пистолет Aliens не казать чтобы шибко и Инопланетный 😎 В обЧем будем посмотреть за успехами.
📱YouTube
#rifle#silencer#3dprint#дтк#пламягаситель#глушитель#банка