В фреймворке 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
¿Que puede hacer este bot?
@VoIPRiverBot
Compre números para crear cuentas de Telegram y WhatsApp. Obtenga cuentas gratuitas con el programa de referencias.
Idioma: #Inglés
#Números#teléfono#WhatsApp#Telegram
( Visto en: @BotsGram_Cu )
🤖 Nuevo bot
📋 Nombre: ChatChallengeBot
🆔 Nombre de usuario: @ChatChallengeBot
⭐️ Calificación: ⭐️⭐️⭐️ (3.9/5 en 91 votos)
➖➖➖
ℹ️Descripción: Mejora tu vocabulario con desafíos simples
🌐 Idiomas: Inglés
💬 Admite contenido en línea: no
👥 Grupos: sí
#️⃣ Etiquetas: #Inglés#Gramática#Desafíos#Matemáticas
🤖 Nuevo robot
📋 Nombre: memo_card_bot
🆔 Nombre de usuario: @memo_card_bot
⭐️ Calificación: ⭐️⭐️⭐️⭐️ (4.2/5 sobre 46 votos)
➖➖➖
ℹ️Descripción: Mejora tu memoria con repetición espaciada. Aprenda idiomas, historia u otras materias con el método probado de tarjetas didácticas.
🌐 Idiomas: Inglés Español Ruso Portugués
💬 Soportes en línea: sí
👥 Grupos: no
#️⃣ Etiquetas: #flashcard#memoria#anki#inglés