Установить свойства виджета в 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
💫Книги для вдохновения и перезагрузки этой зимой #books
Пока за окном снежно и холодно, можно уделить больше внимания книгам, которые помогут настроиться на весеннюю волну и зарядиться энергией для новых начинаний.
Делитесь подборкой с близкими и обсуждайте книги, к которым хочется возвращаться вместе 🤍
ART FLASH
💫Что почитать на новогодних каникулах?#books
Январские праздники — время, когда после декабрьской суеты особенно хочется замедлиться. Поэтому мы предлагаем погрузиться в искусство через книги.
Делитесь подборкой с близкими и обсуждайте книги, к которым хочется возвращаться вместе.
ART FLASH
💫Что почитать, если …хочется разбираться во всем#books
В карточках делимся подборкой книг, которые помогут окунуться в разные сферы — от музыки и стрит-арта до моды и архитектуры 🤍
ART FLASH
💫О чем нам рассказывают обложки книг? #books
Каждая книга встречает нас обложкой — именно она задает настроение, обещает атмосферу и прячет внутри целый мир. Мы поговорили с издательствами Московской книжной недели и узнали, что каждая обложка хранит свою маленькую тайну. Подробности — в карточках.
Потом мы задумались: а если бы мы сами были обложкой, какой бы она была — минималистичной и строгой, романтичной, дерзкой или классической? Мы составили тест, который поможет узнать, какая обложка отражает вашу внутреннюю историю. Пройти его можно тут 🤍
ART FLASH
Привет, коты! Я с вами периодически делюсь любимыми произведениями контр-литературы, но классику никто не отменял- это база. Одним из моих любимых таких произведений является «Ночной портье» (ориг. Nightwork) — наиболее характерное произведение Ирвина Шоу, в котором соединяются авантюрный сюжет, психологическая проза и размышления о случайности как движущей силе человеческой судьбы
Сюжет
Главный герой — Дуглас Граймс, бывший лётчик, чья жизнь рушится после медицинского запрета на полёты. Он оказывается на социальном «дне» — работает ночным портье в дешёвом отеле и живёт без особых надежд
Перелом происходит случайно: один из постояльцев умирает, и Граймс обнаруживает крупную сумму денег. Он решается на риск — присваивает их и отправляется в Европу, где пытается «начать заново» и взять реванш у жизни
Дальше роман превращается в цепь стремительных событий: путешествия, авантюры, опасные знакомства, попытки закрепиться в новой реальности. Но за внешней динамикой постепенно раскрывается главный вопрос — может ли случай действительно изменить судьбу или человек остаётся пленником своего характера
Роман часто трактуют как историю о иллюзии свободы: герою кажется, что он вырвался из ограничений, но на деле он продолжает двигаться в рамках своих слабостей и страхов
Особенности стиля
Стиль Ирвин Шоу здесь узнаваем:
1. Динамика и кинематографичность
Сюжет развивается быстро, с частыми сменами локаций и ситуаций. Это почти «роман-путешествие» с элементами триллера
2. Реализм и психологическая точность
Шоу подробно показывает внутренние колебания героя — от эйфории до тревоги и моральных сомнений
3. Отсутствие прямой морализации
Автор не навязывает выводы, оставляя читателю пространство для оценки поступков персонажа
4. Социальный подтекст
За личной историей видна типичная для Шоу тема — человек в мире денег, успеха и неравенства
Читается на одном дыхании! Если вы еще не знакомы с ним очень рекомендую!
#books
Книга о масле 📚
Книга «The Butter Book» Анны Стоквелл – это подробное исследование сливочного масла как одного из ключевых продуктов кухни.
Внутри – техники и рецепты: как выбирать, взбивать, топить и ферментировать масло, а также использовать его в соусах, выпечке и горячих блюдах.
Среди рецептов – соус бер-блан, блюда с морепродуктами и мясом, десерты и разные варианты ароматизированного масла – от классических до более необычных сочетаний.
#books
«Nordic. Вдохновение, уют и еда со вкусом Севера» 📚
Атмосферная кулинарная книга блогера Анжелики Зоркиной о северной кухне и образе жизни в стиле nordic.
В книге собраны более 90 рецептов – от традиционных блюд до авторских интерпретаций, вдохновлённых скандинавской культурой и природой Севера: гравлакс из лосося, пироги и киши, блюда с картофелем, рыбой и сезонными овощами, скандинавские булочки и десерты с брусникой.
#books
˖ ࣪⭑ Dingg.. Dongg.. 🛎
Check it out students, the bell has rung. It’s such an honour to present our new #Books. Dont forget to read our school rules before using it hoho. Have a wondrous day ahead! ♡⸝⸝
˖ ࣪⭑ Dingg.. Dongg.. 🛎
Check it out students, the bell has rung. It’s such an honour to present our new #Books. Dont forget to read our school rules before using it hoho. Have a wondrous day ahead! ♡⸝⸝
˖ ࣪⭑ Dingg.. Dongg.. 🛎
Check it out students, the bell has rung. It’s such an honour to present our new #Books. Dont forget to read our school rules before using it hoho. Have a wondrous day ahead! ♡⸝⸝
«Стейксизм» 📚
Исследование того, как еда оказывается втянута в систему гендерных стереотипов. Почему мясо ассоциируется с мужественностью, а лёгкие блюда – с женственностью? Откуда взялись представления о «мужской» и «женской» пище и почему они до сих пор влияют на наше поведение за столом? Автор разбирает культурные, исторические и социальные механизмы, которые формируют эти установки, показывая, как они закрепляются в медиа, рекламе и повседневных привычках. Книга предлагает критически взглянуть на устоявшиеся представления о еде и понять, как гендерные мифы продолжают определять то, что и как мы едим.
#books
˖ ࣪⭑ Dingg.. Dongg.. 🛎
Check it out students, the bell has rung. It’s such an honour to present our new #Books. Dont forget to read our school rules before using it hoho. Have a wondrous day ahead! ♡⸝⸝