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

Пребарај: #festadellunità

当前筛选 #festadellunità清除筛选
Savino Balzano

@savinobalzano · Post #694 · 04.07.2024 г., 08:40

"Maestà, il Popolo ha fame!" "E voi dategli un asterisco." Uno poi pare che si accanisce, ma il fatto che il #PD si comporti come una multinazionale, mettendo l'asterisco alla fine della parola #unità, non vi pare controverso? La #FestaDellUnità è ridotta a questo? Alla rivendicazione di stupidi strumenti a costo zero? Ripeto ciò che ho già detto: sono le multinazionali a tingere d'arcobaleno i propri loghi, a fare corsi sulla vacua inclusività, a mettere Ə alla fine delle parole, a riconoscere universalmente il diritto allo schwa. Non costa nulla. Quando poi vai a chiedere che il buono pasto aumenti di un solo euro, saltano dalla sedia e ti mandano a fanculo. E col buono pasto ci mangiano pure i gay. Gli omosessuali sono strumentalizzati dalla #sinistrucola: quando ci parlo, io non percepisco da loro la paura della discriminazione, francamente. Con me si lamentano della precarietà, delle difficoltà economiche, dei servizi pubblici che fanno cagare. Questo atteggiamento marchettaro prende per il culo la gente e soprattutto accarezza i grossi centri di potere, politici, burocratici, economici e finanziari: strumentalizza il piano dei diritti civili per fregarti su quello dei diritti sociali. Non so più come dirlo: questa finta sinistra, che tradisce #Berlinguer mentre lo celebra, si dovrebbe ricordare della sua ultima battaglia, quella per salvare la scala mobile, poco prima di morire. #EllySchlein, invece di cantare #BellaCiao coi vestiti scelti dall'armocromista, vada a chiedere l'indicizzazione delle retribuzioni all'#UE: sapete dove la manderebbero? A quel paese la manderebbero. Eppure si professa con orgoglio "federalista europea". Questa sinistrucola è "orizzontale": si muove comoda, a costo zero. Di battaglie redistributive, verticali, nemmeno l'ombra anche perché i disastri peggiori li hanno fatti loro mentre governavano a dispetto dell'esito elettorale, i #democratici. Il metodo è sempre lo stesso, dare aria fritta a chi ha fame: vero che fritto e tutto buono, ma pure l'aria no! Il popolo ha fame? Daje de #antifascismo. Il popolo ha fame? Daje de asterischi. Ma magnatevela voi sta sbobba de vuoto! https://x.com/SavinoBalzano/status/1808782560954139040?t=oeshPVbtjeTqx4BJLVpf0w&s=19