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 слични објави

Пребарај: #bagnai

当前筛选 #bagnai清除筛选
Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39814 · 01.06.2022 г., 10:32

#Italia#Russia Alberto #Bagnai (#Lega|ID): "Sull'avvocato Capuano prendiamo in considerazione il fatto che ci possa essere un racconto mediatico un pochino distorto, se Salvini parla con Razov non ha bisogno di Capuano, parla direttamente con gli ambasciatori. Anche io ho parlato con Razov." @UltimoraPolitics

Savino Balzano

@savinobalzano · Post #942 · 19.03.2025 г., 09:49

https://x.com/SavinoBalzano/status/1902296134371987738?t=MI71PjB2zc-Y11ZfzaEhDQ&s=19 Il 18 marzo resterà una giornata impressa nella memoria: uno strepitoso Bagnai inchioda sua Santità #Draghi con delle domande semplicissime, lasciando emergere tutte le responsabilità che hanno l'#UE e i servi che in #Italia ne fanno gli interessi. La risposta di #MarioDraghi, così balbettante e incerta, indurrebbe quasi tenerezza, se dietro quelle parole non si celasse l'immensa sofferenza di tante famiglie, non solo italiane, che in questi anni hanno patito sofferenze indicibili. Hanno innescato una concorrenza feroce tra paesi, una vera e propria guerra economica (altro che pace!), nella quale la competizione si giocava sulla nostra pelle, sui nostri salari, su ciò che ai sensi della Costituzione (art. 36) avrebbe dovuto garantire a noi e alle nostre famiglie un'esistenza «libera e dignitosa». Certo, mi sarebbe piaciuta di più una scena alla "Codice d'onore", con un #Bagnai che urla «colonnello Draghi, fu lei a ordinare l'austerità?!?» e quello rispondergli «certo che l'ho ordinato. Che cazzo credi?!?». Ma va bene anche così, dai. E pensare che c'è Calenda che va ancora in giro a scrivere "aridatece Draghi". E vabè, come mi avete fatto notare ieri, è solo #Calenda...