Установить свойства виджета в 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
the truffle hunters, 2020, m. dweck, g. kershaw
север италии, пьемонт. будни пожилых людей, которые в одиночку ходят с собаками по лесам в поисках местных сокровищ. трюфель находится под землёй, пёс унюхивает, разрывает. потом хозяин продаёт его дилеру, а тот перепродает в рестораны, носит на выставки для ценителей. любимые сцены - от первого лица лающих охотников; застольные беседы с ними же. #doc
А мы напоминаем, что программа Bastau Docs есть на сайте фестиваля.)
Bastau Docs - сегодня, Синий зал #doc
НЕОБРАТИМОСТЬ (Сказка времени, которое не вернётся) - 14:00
Павле Терзич, Сербия, 2023, 107 мин
Из Детройта, через Чикаго, в направлении Манчестера и дальше к Берлину и Белграду. Независимо от того, звучит ли рейв на подпольной (в прямом и в переносном смысле) клубной площадке или на сценах больших залов, электронный звук становится своего рода новой музыкальной религией.
ГОЛОС ЛЕДНИКА - 16:00
Ядыкар Ибраимов, Казахстан, 2023, 80 мин
Хорошо известно, что ледники тают из-за климатического кризиса, но как именно это происходит? Эко-триллер о таянии ледника Туюксу в Казахстане — и работа ученых, которые документируют этот процесс.
Коллектив Women Make Docs анализирует фильм «Голос ледника»
ДОЧЬ ХУДОЖНИКА - 18:00
Маргарита Линтон, Янив Линтон, Израиль, 2022, 60 мин
Она присоединяется к экскурсии по выставке известного художника. Мужчина на автопортретах — её отец, но об этом знают лишь немногие. Она связывается с художником впервые за десять лет и делится своей идеей снять фильм об их отношениях, которые возобновились благодаря его творчеству. Взволнованный художник отправляет её снимать свою выставку. По ходу работы над фильмом она обнаруживает, что встреча с человеком, стоящим за портретами, является для нее настоящим испытанием. «Дочь художника» рисует ошеломляющий и удивительный портрет отношений, которые могут существовать только в кино.
Моше Циммерман, Пицца в Освенциме, 2008
главный герой, Данни Ханох, переживший все ужасы Холокоста, кочуя из одного концлагеря в другой исполняет свою мечту: возвращается, чтобы посетить лагеря вместе со своими детьми. у него есть план, он хочет снова переночевать в бараке. воспоминания о кошмаре становятся травмой для следующего поколения. #doc
Fifi az khoshhali zooze mikeshad, 2013
Фифи воет от счастья
r. Mitra Farahani
полу-забытый иранский художник и скульптор Бахман Мохассес давно покинувший Тегеран живёт в итальянском отеле. он ужасающе хохочет и кашляет и с упоением рассказывает (листая каталог своих работ) как он уничтожал их. потому что не хочет оставаться в памяти потомков.
получение нового заказа обрекает на невозможность нахождения правильного оттенка краски. желание курить выступает против кашля. а камера, установленная так чтобы точно заснять первое касание кисти, по иронии записывает последние звуки.
расстояние между художником и картиной, режиссёркой (которая фарахани, но не родственница другому фарахани) и фильмом постоянно пружинит и чуть меняется пока они общаются между собой, но кажется что ни фильм, ни каталоги, ни заказчики не вызывает такого трепета как (портрет?) Фифи. такое не продаётся.
и сколько бы Мохассес не рвал свои картины раньше и не язвил вот тут он и есть. ну и нет его тоже тут.
#doc
#pulpnonfiction#doc
«Венедикт Ерофеев: посторонний». Олег Лекманов, Михаил Свердлов, Илья Симановский (РЕШ, 2018)
Биография Венички, сделанная в технике монтажа фактов и воспоминаний, запараллелена литературоведческому анализу поэмы «Москва-Петушки». Краткий вердикт: читать, подавляя мысли «ну как же так-то».
Текст про эту книгу внезапно нашел отклик у аудитории Дзена (только не читайте комментарии, просто не читайте комментарии).
#pulpnonfiction#doc
«Батенька, да вы трансформер» или «Как стать знаменитым, счастливым, найти себя и свою любовь, предсказать будущее и вылечить все болезни»
1. Для тех кто не следит за «звездами соцсети» (а именно так называется серия АСТ, в которой вышла эта книга): «Батенька, да вы трансформер» — это своеобразное, но очень любопытное медиа, напоминающее одновременно и «Русского репортера», и «Русскую жизнь».
2. В магазине книга стояла на полке «Самиздат», но в книжном понимании это, конечно, никакой не самиздат, а издание тиражом 2000 экземпляров со всеми прелестями АСТ: газетная бумага, плохая техническая верстка и корректура ниже плинтуса (корректора в выходных данных нет в принципе).
3. Верстка веб-статей перенесена в печатную книгу буквально: с батеньковским шрифтом, флаговым набором, отступами под буквицами, прерывистыми линиями на шмуцах и так далее. Не заморачивались ребята.
4. А еще в книге, конечно, нет замечательных иллюстраций, коубов и видео (или qr- кодов), которые есть в вебе
#рекурсия#doc
Дочитала сборник статей Аркадия Мильчина (тот самый, написавший «Справочник издателя и автора») о культуре издания книг. Общий посыл: правила оформления нужны не потому что так принято и такой ГОСТ (с ГОСТами Мильчин иногда спорит), а потому что поставьте себя на место читателя — как будет удобнее ему?
Если взять с полки несколько случайных книг, то неграмотное оформление будет у каждой второй. А у каждой первой не будет, только потому что это художка русского автора, причем состоящая из одного романа без деления на главы. Хоть подхватывай знамёна и пиши доколе-заметки в «Книжное обозрение».
Типичные ошибки собрала в статье.
My Octopus Teacher, 2020
Мой учитель - осьминог
r. P. Ehrlich, J. Reed
в документалистике тонкая грань между автором и обьектом изучения, а в случае с фильмом про учение осьминога почему-то постоянно кажется что эта грань нарушается. что у дайвера на протяжении года нездоровая одержимость и желание проводить дни в обществе харизматичной мадам осьминог.
#doc#leaveoctopusalone