Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
Сегодня мы анонсировали DaVinci Resolve 20.2.3, который добавляет поддержку до 4 раз более производительных функций Magic Mask, Depth Map и Super Scale на графических процессорах Intel для Windows с использованием DaVinci Resolve Studio. Благодаря повышенной скорости работы этих инструментов искусственного интеллекта вы теперь можете быстро изолировать объекты, улучшать фон или масштабировать видео в реальном времени для более плавного и отзывчивого монтажа и цветокоррекции.
Теперь вы можете назначить горячую клавишу для открытия и закрытия ключевых кадров временной шкалы и панели кривых при монтаже. Это ускоряет анимацию и тонкую настройку времени и движения клипов, позволяя легко настраивать положение, масштаб и громкость прямо на временной шкале.
Для тех, кто работает с файлами WEBM и MKV, в #DaVinciResolve 20.2.3 добавлена поддержка старого кодека VP8. Это означает, что вы можете импортировать и редактировать контент из старых видео YouTube, веб-источников и некоторых камер без предварительной конвертации файлов, экономя время и сохраняя исходное качество клипов. При создании видеоэффектов рендеринг EXR-файлов теперь сохраняет метаданные о положении вложенных последовательностей из исходных клипов. Это позволяет сохранить выравнивание и пространственные соотношения элементов, что упрощает управление вложенными последовательностями и упрощает их повторное редактирование.
Кроме того, это обновление включает улучшенную интеграцию декодирования и скриптинга для файлов MP4 и MKV, а также поддержку Blackmagic RAW 5.1.
Обновление DaVinci Resolve 20.2.3 доступно для бесплатной загрузки с сайта
https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion
Сделал небольшой перевод, но интересна не сама новость что affinity стала бесплатной, а то как рассказали про #davinciresolve
https://news.fidller.com/2025/10/31/affinity-sleduyet-puti-davinci-resolve-eto-blestyashche-i-provereno-vremenem/https://news.fidller.com/2025/10/31/affinity-sleduyet-puti-davinci-resolve-eto-blestyashche-i-provereno-vremenem/
Компания Blackmagic Design выпустила обновление #DaVinciResolve 20.1.1 , которое обещает более быструю загрузку проектов Blackmagic Cloud с наложенными временными шкалами, улучшенное сохранение параметров копирования и вставки клипов, более чистую компоновку слоев и узлов для импорта PSD в Fusion.
Что нового в DaVinci Resolve 20.1.1
Были добавлены или обновлены следующие функции.
Исправлено время загрузки облачного проекта с включенными составными временными шкалами.
Исправлены диалоговые окна атрибутов для сохранения выбора пользователя до следующего копирования.
Исправлены проблемы повторного нажатия и сохранения движения в атрибутах вставки.
Устранены проблемы с загрузкой и импортом PSD-файлов в комп.
Исправлена проблема с включением дополнительных каналов в Swizzler.
Исправлено смещение магической маски Fusion при переключении режимов.
Исправлена проблема с преобразованиями пространства линз в композициях Fusion.
Исправлена проблема с носителями в цветном или смешанном режиме, не отражающими магическую маску.
Исправлено зависание при выводе мультимедиа в режиме смешивания в некоторых сценариях.
Исправлен сбой при отображении карты глубины на некоторых компьютерах Mac с процессором Intel.
Исправлена ошибка, приводившая к сбою при загрузке неправильно сформированных клипов MTS.
Исправлена некорректная интерпретация fps в некоторых mkv-клипах.
Устранены проблемы форматирования метаданных Dolby Vision ISXD.
Решены проблемы 3D-квалификатора и 3D-кеинга в DaVinci Resolve Renderer.
Исправлена проблема восстановления двойного экрана при переключении между страницами.
Улучшена скорость передачи данных и качество компоновки для собственных кодеков Windows.
Общие улучшения производительности и стабильности.
Сегодня мы представляем релиз #DaVinciResolve 19.1.4, который добавляет поддержку файлов Blackmagic RAW, записанных на новую камеру URSA Cine 17K 65.
Дополнительно появилась опция сжатия видео в формат Apple ProRes на платформах Windows и Linux, а также обработки LUT-таблиц Samsung Log. Кроме того, повышена эффективность сетевого декодирования и выгрузки AAF-клипов со встроенным звуком, что обеспечивает параллельный доступ к проекту DaVinci Resolve с нескольких станций с сохранением структуры временной шкалы, интегрированных файлов и метаданных.
Обновление DaVinci Resolve 19.1.4 доступно для бесплатной загрузки по адресу https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion
Blackmagic Design выпустила #DaVinciResolve 19 Beta 5 , в котором добавлена поддержка оптимизированных многовидовых макетов и больше опций перехода в меню временной шкалы страниц обрезки. Также производительность ИИ в 3 раза выше на поддерживаемых системах Intel Windows.
Это обновление программного обеспечения добавляет поддержку ряда улучшений страниц вырезания (cut), включая оптимизированные многовидовые макеты, параметры перехода в меню временной шкалы (timeline), а также отображение активности кэша рендеринга и возможность выбора аудиоканалов при редактировании повторов. Кроме того, есть поддержка новых параметров Resolve FX film look creator и возможность сохранять метаданные видеоклипов при синхронизации аудио- и видеофайлов. Это обновление также добавляет до 3 раз более высокую производительность ИИ на поддерживаемых системах Intel Windows, а также автоматическое отображение тонов SDR в HDR и больше параметров SuperScale на компьютерах Windows с поддерживаемыми графическими процессорами Nvidia.