Установить свойства виджета в 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
Дело Стетхема живёт, а Паоло Коэльо забыт.
Заметили что из неосферы практически пропали ванильные цитаты уступив место волчьим? Их разнесло в клочья по округе💥 авениды Santos Dumont. Как далеко нужно забраться, чтобы не встретится с мудростями из пабликов Vk? Стратосфера? Юпитер, Альфа Центавра? Я для себя нашёл safespace в бабушковых открытках WhatsApp
Кем бы ты ни был, кем бы ты не стал, помни, где ты был и кем ты стал. Ауф
#pintada#Ruso
После высиживания суток в жаркой квартире вываливаюсь на улицу как разварившаяся каша из кастрюли, а там андеграунд.
Несмотря на обилие старой архитектуры и уважения к классике🗿, не чувствуется тесных рамок псевдо-академического режимного предприятия. Наличие граффити и муралов изрядно рассыпано по городу, причём пока не заметил ветхих особняков забобленых сверху донизу или завандаленых построек из старого фонда. Обычно разукрашиваются заборы, склады, гаражи и современные хибары. Как так гармонично👁 получается пока не понимаю. Толи их дворникам в ЖЭКе выдают мало краски для агрессивной конкуренции с граффитистами при помощи серых прямоугольников, толи это такое общее чувство вкуса, как мне и хотелось бы думать. Уличные художники не особо посягают на архитектурных старцев и частную собственность, а коммунальщики не бегают закрашивать в монохром все лиминальные пространства. Такая вот уместная толерантность рядового жителя.
Что интересно: цветные картинки✒️ всё же склоняются к изображениям, а не тексту, и мелкого тегинга вообще мало, по сравнению с США или Евразией.
#art#пейзаж#pintada
Вот художников хлебом не корми — дай залезть в какие-нибудь ебеня, даже жилые, и чёнить там мазануть. А уж временные стены трущоб, так подходят временным картинкам
😉.
#favela#пейзаж#pintada
Не знаю почему по задумке художника гоминид без оружия превращается в женщину. Осуждаю мизогинию🔠.
Жириновский обещал :
Каждой бабе по мужику.
Если дамам раздать пушки они сами справятся, без политиков.
Знаем мы таких номенклатурщиков, хотят взять под свой контроль перераспределение пороха🔫 и Y-хромосомы👨🏻. А потом посылают на улицы города таких граффити-пропагандистов. Меня не обдурить, я давно в интернетах.
#автоном#феминизм#pintada
Ещё в прошлом году посетил Национальный музей изящных искусств. Получилось изящно
🍷.
Самое главное — в центре, доступно и абсолютно БЕСПЛАТНО —Рекомендую.
Музей поделён на два этажа. На втором находится современное искусство, актуальная мазня и прочая борьба с патриархатом. Ни душевных ни физических сил уже не нашлось, так что было решено получать впечатления дозировано. Хороший метод, советую. Сосредоточились значит на первом этаже, а там есть что поглядеть.
Знакомство естественно начинается с америндийских туземцев. Артефакты народов кечуа, мапуче, гуарани и иных кобольдов. Разные палки-копалки, мисочки, бусы и прочее. Мне дико вкатила звереподобная посуда и чайники с птичьими лицами
🦆. Вообще лица на многих предметах есть. Отзвуки это может анимизма, а может массовой парейдолии. Губастый кувшин об этой истории обещал молчать.
Потом из мезолита резкий прыжок в ренессанс. Прыжок на пушечном ядре. Как говорил один толи шиз, толи искусствовед - Искусство это насилие. Начинаются гобелены, каллиграфия, позолоченная утварь, забавные иконы упоротого средневековья и прочая реклама Страшного суда
🔥.
Идём дальше. Просвещение. Я не знаю где местные идальго заказывали портреты себя любимого, да и остального семейства, однако явно на местный спрос было недостаточно предложений, наверно мало кто мог выписать себе мастера из-за океана. Некоторые выполнены явно на заказ в Париже или Мадриде, но добрая часть — работы местных художников
😅 с шаткими знаниями анатомии. Всратые лица и пропорции даже умиляют своим наивом. На экспорт явно шли готовые работы из Европы: яблоки, кони, поля, кони среди яблок, яблоки на полях, кони бегущие по полю. Натюрморты и пейзажи короч, и все такие тёмные, много контрастного кьяроскуро. Есть Рембрандт, который скорее относится к предыдущей эпохе, но вообще не верится что его могли завезти при жизни. Появляется барокко и мотивы эллинистических инфлюенсеров. Не могу не упомянуть любимого мной
☺️ Франсиско Гойя. По некоторым залам прям видно, что это собирали какие-то отдельные семьи. Всё из частных коллекций, пожертвованное, не раскулаченное.
Приближаясь к авангарду заметно тотальное количество импрессионизма и постимпрессионизма. Это не рофл. Таких картин столько же сколько всех остальных экспонатов вместе взятых. Если в предыдущих рубриках были по большей части ноунеймы, то тут явно оригиналы мастеров. Иногда второсортные, но всё же. Моне, Ренуар, Тулуз-Лотрек, Деренна, ван Гог, Роден. Даже дурак Гоген имеется. Явно скупали этот массив во времена современников, старинные экспонаты было бы достать куда сложнее. Это подтверждает представление о Байресе как о городе собранного из Ар-нуво, югендштиля, декаданса и раннего модернизма, а затем и интербеллума. Запах ваксы и уксуса. Вот прям там на стуле смотрительницы зала захотелось включить патефон и поставиться морфием😁.
Раздражив до зуда зрачки измерением красоты видимого спектра покинули музей в добрых, но измождённых чувствах. В целом обстановка внутри кажется чуть более неформальная чем в СНГшных музеях. Можно везде спокойно фотографировать, прикиньте? От этого оказывается не отваливается жопа. Но есть обратная сторона. Меня попросили носить рюкзак в руках или на животе. Толи потому что в музее орудуют воры (лол что?) Толи чтобы не задеть при повороте какойнить арт-обьект со спины.
Вообще мне понравилось, но удивительным образом подтверждает превосходство российских главных музеев в плане обширности коллекции и уровня работ. Уровень базы колосален. Действительно не все могут спорить с Метрополитен и Лувром. Хранители второго, а то и третьего эшелона могут рассчитывать на черновики или не самые востребованные работы известных гениев, а то и просто развлекаться соц-реализмом местных красильщиков и маляров из союза художников
🤡. Буэнос-Айресу в этом плане повезло куда больше.
#сервис#guide#art#pintada
Посетил вчера коллективное прослушивание Леонида Ильича Светова🗞. Дядька приехал в Байрес, молодец. Куча россиян выползли из-под своих мшистых пней, встретились послушать анекдоты про метамодерн. Очень прикладная инфа, лучше коуча по успеху
👍. На несколько часов воссоздалась уютная атмосфера московских тусовок, где люди живо обсуждали как им обустроить земную твердь перед коллапсом вселенной.
На афтерпати мы не остались найдя другую компанию
🛏. Так в районе Палермо был обнаружен этот кадр с видом на забор. Очень онтологическое заявление. Искренность эта новая или старая, сказать не возьмусь.
#политота#автоном - анкап #Ruso#праваки#pintada