Установить свойства виджета в 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
visvim VARSITY ERA DOWN JACKET.
Varsity Jacket из линии Overseas Exclusive — лаконичное переосмысление университетской классики. Модель выполнена из хлопка french terry. После окрашивания каждая куртка проходит ручную обработку, благодаря которой материал выглядит мягким и слегка «выветренным», будто вещь уже прошла через годы носки.
Внутри — наполнитель из белого гусиного пуха с облегчённым объёмом: он сохраняет тепло, не утяжеляя силуэт, формируя аккуратную округлую посадку. Баланс винтажной эстетики и современного подхода к материалам делает модель универсальной в повседневном гардеробе.
Доступен эксклюзивно в нашем магазине на Большой Дмитровке 20с2.
#visvim
visvim LEATHER ESSENTIALS CASE
Минималистичный аксессуар из высококачественной кожи, выполненный с фирменным для visvim подходом к мастерству и дизайну. Этот компактный кейс идеально подходит для хранения ежедневных мелочей.
Все размеры и расцветки представленыв нашем магазине на Большой Дмитровке 20с2.
#visvim
visvim —рабочий процесс.
История бренда началась в 2001 году, когда Хироки Накамура решил посмотреть на обувь индейских племён с точки зрения современной уличной моды. С тех пор он начал следовать пути изучения и переосмысления традиций создания одежды со всех уголков мира.
Господин Накамура черпает идеи в одежде коренных народов Америки, винтажных вещах Запада и многогранной токийской культуре. Дизайнер поэтапно воссоздаёт забытые технологии производства и обработки одежды, скрупулезно обращаясь с материалами так, как это было принято несколько столетий назад.
#visvim
visvim Valdez Down Coat
Коллекция Autumn/Winter 2025 от Хироки Накамуры продолжает
исследовать тему «будущего винтажа», и центральное место в ней традиционно занимает куртка Valdez. Вдохновленная классической летной паркой N-3B, выполнена из нейлона сверхвысокой плотности, прошедшего уникальную процедуру окрашивания Natural Dyed.
Доступна для заказа в нашем магазине на Большой Дмитровке 20с2.
#visvim
Новое поступление visvim CORDURA 20L.
До создания visvim Хироки Накамура работал в Burton Snowboards, путешествовал по миру вместе с командой райдеров и участвовал в разработках технологичной спортивной одежды, выдерживающей колоссальные нагрузки.
После основания собственного бренда он Накамура захотел создать идеальный городской рюкзак, в котором были бы воплощены особенности передового спортивного снаряжения и винтажной военной экипировки. Так появилась модель «CORDURA», названная в честь одноименного баллистического нейлона.
Каждый сезон дизайнер экспериментирует с деталями рюкзака: добавляет материалы со всех уголков света, а также заимствует элементы из культуры индейских племён и японских традиций.
Для оформления заказа— @infobeliefmoscow
#visvim
visvim SKAGWAY LO SUEDE
SKAGWAY - серия обуви visvim, в которой Хироки Накамура исследует многочисленные особенности и удобство баскетбольных кед, произведенных до начала 1960х годов.
Эта модель создана с уклоном на обувь 1950х, которую отличал низкий силуэт. Подчеркивая влияние той эпохи, дизайнер украсил смещенный к мыску резиновый лейбл леттерингом “visvim” в стиле середины XX века. Верх создан из однотонной замши с британских фабрик, чтобы владелец мог наслаждаться постепенным проявлением благородной патины.
По всем вопросам обращайтесь в поддержку – @infobeliefmoscow
#visvim
visvim BRIGADIER BOOTS-FOLK
Cилуэт visvim на основе деталей американских рабочих ботинок первой половины XX века: замша с итальянских фабрик, наборная подошва, контрастная прострочка и латунная кнопка для усиления швов.
Ботинки дополнены пробковой стелькой, которая впитывает лишнюю влагу и обеспечивает хорошую амортизацию, а также оснащены универсальной подошвой Vibram. Благодаря традиционной рантовой конструкции Goodyear Welt со временем старую подошву можно заменить на новую, тем самым продлив срок службы обуви.
По всем вопросам обращайтесь в поддержку – @infobeliefmoscow
#visvim
visvim Bickle Era Down Jacket — пуховая куртка из плотного хлопкового френч терри, окрашенная и обработанная вручную для создания естественного винтажного эффекта.
Белый гусиный пух, пуговицы из рога буйвола и армейская тесьма подчеркивают внимание к материалу и ремеслу, которое отличает каждую вещь visvim.
По всем вопросам обращайтесь в поддержку – @infobeliefmoscow
#visvim
visvim Social Sculpture Denim
Сила и история винтажного денима вдохновили Хироки Накамуру на создание собственной линейки джинс Social Sculpture. Дизайнер переосмыслил традиционное производство, где волокна разной длинны сперва окрашиваются вручную натуральным индиго согласно канатному методу, а затем медленно сплетатся в единое полотно на старинном оборудовании.
Для оформления заказа - @infobeliefmoscow
#visvim
visvim Cut & Sewn
Переосмысляя наследие винтажной спортивной одежды, Хироки Накамура создет свитштоты с заниженной линией плеча и свободной посадкой. Экспериментируя с длиной рукавов Господин Накамура представил три варианта свитшотов: Mondo, Short Sleeve и 3/4. Каждый из этих ситуэтов отлично подойдет для создания многослойного образа.
Для производства дизайнер использовал мягкую и слегка неоднородную ткань. Хироки Накамура вдохновлялся традициями ручной работы с тканью и использовал натуральные красители для достижения естественного и неравномерного оттенка.
Для оформления заказа - @infobeliefmoscow
#visvim
visvim T-Shirts
Хироки Накамура создал футболки visvim с графикой в стиле автогонок середины ХХ века. Футболки имеют свободный крой и изготовлены из мягкой ткани джерси. Они окрашены натуральными красителями, а их поверхность кропотливо состарена в несколько сложных этапов.
Для оформления заказа - @infobeliefmoscow
#visvim