TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #dopingpongarchives

当前筛选 #dopingpongarchives清除筛选
dopingpong

@dopingram · Post #4117 · 14.07.2025 г., 08:18

Happy Birthday, Petite Meller! A fragment of the press realise an unrealized joint project. Petite Philosophia X Doping Pong Petite Philosophia will be released later as the world's first perfume that conveys the beautiful scent of philosophy from ancient Greece to the psychoanalysis room. Super singer Petite Meller and brilliant artists group Doping Pong came together in an international project to create the world’s first perfume with the scent of philosophy. Meller explains that the origin of the project came from wanting to create a perfume with the scent of philosophy. According to Meller “In Greek Philo is The Love, Sophia is Wisdom. I asked Russian art-collective Doping Pong to design the book shaped perfume with philosophy written in Russian letters to represent their art collaboration”. Doping Pong art group are the pioneers of digital art in Russia that was founded in 1997 in St. Petersburg. Now, they are apologists for traditional painting. In the past, Doping Pong collaborated with Richardson and Supreme, participated in the collective exhibition "New Classics" - curated by Sasha Bogoev, editor of Juxtapoz magazine and held their retrospective "Doping Pong: Our everything!" at the Erarta Museum of Contemporary Art. Petite Meller is a French Israeli artist and songwriter who brings a philosophical view on life through her music. "Lil Empire" is her debut album with her hit "Baby Love". Her Jazzy pop videos conceals "jouissance" which is in Freud’s terms a pleasure out of pain. Aside from her musical career, Meller received a postgraduate degree in philosophy from the Sorbonne in Paris. For more information on Petite Philosophia, visit Instagram Petite Meller: www.instagram.com/petitemeller #petitemeller#философия#perfume#dopingpong#digitalart#dopingpongarchives