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

Резултати

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

Пребарај: #solinas

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

@ULTIMORAPOLITICS · Post #44534 · 17.01.2024 г., 18:38

#Sardegna Christian #Solinas è indagato per corruzione. La Guardia di finanza sta eseguendo un sequestro cautelare di beni e immobili per un valore di circa 350 mila euro nei confronti del presidente della Regione e di altri sei indagati per corruzione @UltimoraPolitics24

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #44536 · 17.01.2024 г., 19:45

#Sardegna2024 Christian #Solinas al TG1: "Questa indagine ha due elementi di sicuro rilievo: il primo è il tempismo, viene fatto a quattro giorni dalla presentazione delle liste e mentre si decide il candidato presidente unitario del centrodestra; l'altro è che, essendo in fase di indagine, stiamo parlando di atti che dovrebbero essere coperti da segreto istruttorio" @UltimoraPolitics

Ultimora.net - POLITICS

@ultimoraPOLITICS · Post #39536 · 16.05.2022 г., 14:45

#Sondaggi#Italia Sondaggio di SWG: "In generale, quanto ritiene efficace l'operato del Presidente della Regione [NOME REGIONE], [NOME DEL PRESIDENTE]?" (% composta dalle risposte "molto + abbastanza efficace") (Veneto) Luca #Zaia (#Lega|ID): 72% (-7) (Emilia Romagna) Stefano #Bonaccini (#PD|S&D): 71% (-1) (FVG) Massimiliano #Fedriga (Lega): 64% (+4) (Campania) Vincenzo #DeLuca (PD): 55% (-2) (Piemonte) Alberto #Cirio (#FI|EPP): 49% (-4) (Calabria) Roberto #Occhiuto (FI): 45% (+45) (Liguria) Giovanni #Toti (#Cambiamo|Centro-destra): 44% (-7) (Marche) Francesco #Acquaroli (#FdI|ECR): 44% (-9) (Lombardia) Attilio #Fontana (Lega): 43% (+10) (Toscana) Eugenio #Giani (PD): 42% (-6) (Abruzzo) Marco #Marsilio (FdI): 36% (-4) (Lazio) Nicola #Zingaretti (PD): 35% (+2) (Umbria) Donatella #Tesei (Lega): 35% (-8) (Puglia) Michele #Emiliano (PD): 33% (-8) (Sicilia) Nello #Musumeci (#DB|Destra autonomista): 31% (-3) (Sardegna) Cristian #Solinas (#PSdAz|Centro-destra autonomista): 28% (-5) (Basilicata) Vito #Bardi (FI): 27% (-2) Data rilevazione: 17 febbraio-26 aprile +/-: 3-15 marzo Intervistati: 10365 @UltimoraPolitics