В фреймворке 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
⚡️Релиз Hunyuan3D 3.0
Новая версия обеспечивает в 3 раза более высокую точность 3d-генерации , геометрическое разрешение 1536³ и 3.6 миллиарда вокселей для создания моделей с ультра-HD детализацией.
Ключевые улучшения:
▪ Генерация лиц с реалистичными контурами и естественными позами, что делает модели максимально правдоподобными.
▪ Точная реконструкция сложных структур из изображений благодаря многоуровневой стратегии генерации, позволяющей улавливать скрытые детали.
▪ Повышенная чёткость и профессиональная детализация: улучшенное качество текстур и корректное выравнивание для визуализаций, близких к оригинальному дизайну.
Доступен бесплатный доступ через Hunyuan 3D AI Engine (20 генераций). Решение интегрировано в Tencent Cloud API.
Попробовать можно здесь: https://3d.hunyuan.tencent.com
@ai_machinelearning_big_data
#Hunyuan3D#Tencent#3Dmodeling#AI#UltraHD