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

Резултати

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

Пребарај: #candaceowens

当前筛选 #candaceowens清除筛选
AES INFO

@aesinfos · Post #2443 · 30.01.2025 г., 11:16

#AESinfo | #Satire🇨🇵 Candace Owens lâche une bombe… ou un pétard mouillé ? #CandaceOwens balance tout AUJOURD'HUI sur… Brizbite Macron pardon sur Jean-Michel Trogneux… ah non plutôt sur Brigitte Macron On s'y perd complètement, mais une chose est sûre : Owens prétend révéler un scandale XXL. Alors, pétard mouillé ou vraie bombe médiatique ? La France retient son souffle. Pendant ce temps, Emmanuel Macron : en sueur ou simplement amusé par le spectacle ? That is the question !

AES INFO

@aesinfos · Post #2446 · 31.01.2025 г., 16:54

#AESinfo | #France🇨🇵 Candace Owens s’attaque aux Macron : "L’univers sadique de Brigitte et Emmanuel sera révélé aujourd’hui" Ce vendredi 31 janvier 2025, la commentatrice conservatrice américaine #CandaceOwens a annoncé sur X une campagne visant à exposer ce qu’elle décrit comme "le sombre univers des Macron". Dans son message, elle affirme que "malgré la censure et les poursuites en France, nous sommes déjà en tendance", annonçant que #BecomingBrigitteDay marquerait un tournant. Elle accuse les médias français d’avoir "manipulé les citoyens pendant des années" et promet de lever le voile sur "le monde sadique de Brigitte et de son animal de compagnie , @EmmanuelMacron, ainsi que des structures de pouvoir qui les protègent tous deux". Elle donne rendez-vous à 22h00 (heure française) pour révéler ses informations. Une déclaration qui suscite déjà de vives réactions.