В фреймворке 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
#collocations
#make
#break
@fluencyinenglish
@ieltsstrategies
همآیی فعل Make
🔘 یادگیری واژههای زبان انگلیسی با استفاده از روش واژههای همنشین
1⃣ Make a decision
1⃣ تصمیم گرفتن
2⃣ Make a prediction
2⃣ پیشبینی کردن
3⃣ Make a speech
3⃣ سخنرانی کردن
4⃣ Make fun of
4⃣ تمسخر کردن
5⃣ Make progress
5⃣ پیشرفت کردن
6⃣ Make friends
6⃣ دوست شدن
7⃣ Make a noise
7⃣ سر و صدا کردن
8⃣ Make trouble
8⃣ دردسر درست کردن
@fluencyinenglish
@ieltsstrategies
همآیی فعل Break
✅ یادگیری واژههای زبان انگلیسی با استفاده از روش واژههای همنشین
1⃣ Break a habit
1⃣ ترک عادت
2⃣ Break a promise
2⃣ شکستن عهد و پیمان
3⃣ Break the silence
3⃣ شکستن سکوت
4⃣ Break sombody's heart
4⃣ شکستن دل کسی
5⃣ Break the ice
5⃣ ایجاد صمیمیت کردن
6⃣ Break a record
6⃣ رکورد زدن
7⃣ Break the law
7⃣ قانون شكنى كردن
@fluencyinenglish
@ieltsstrategies