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

Пребарај: #silenzio

当前筛选 #silenzio清除筛选
Papa & Vaticano - News

@papaevaticanonews · Post #9775 · 26.03.2026 г., 15:29

Che cosa può insegnare ai #politici di oggi una figura come quella di Alcide De Gasperi? “Il #silenzio”. Il Cardinale Pietro Parolin, Segretario di Stato di Sua Santità, ha risposto così alle domande dei giornalisti, a margine di una giornata di studio sullo statista trentino promossa dalla Biblioteca apostolica vaticana, in corso presso il Salone Sistino. “Preoccupa la conflittualità, che non serve per il bene della società, per il bene del Paese", ha poi aggiunto il Cardinale. "Approfittare di questo momento, che poi anche a livello internazionale, è particolarmente complicato e doloroso, per cercare di creare una sinergia, ognuno suo punto di vista, ma per il bene comune del Paese”, l’invito del porporato, che interpellato sul recente #referendum ha risposto: “Non tocca a noi dare giudizi. Quello che va rilevato, prima di tutto, è il grande interesse che c’è stato nei confronti del referendum, e che poi si è espresso attraverso una partecipazione notevole. Credo che tutti siamo rimasti un po’ sorpresi. È qualcosa di cui fare tesoro, ognuno dal suo punto di vista. Auspichiamo che tutto questo possa aiutare a una maggiore concordia, a una maggiore collaborazione, sempre in vista del bene comune del Paese". Interpellato poi sul messaggio che Papa #LeoneXIV ha inviato ai Vescovi di #Francia, Parolin ha risposto: “Condividiamo tutti questa preoccupazione: la liturgia non deve diventare un motivo di conflitto e di divisione tra di noi. Si tratterà di trovare una formula che possa venire incontro alle legittime esigenze. Ma credo che ci possa essere, senza fare della liturgia un campo di battaglia”. E sulla situazione in #TerraSanta, dove sono stati cancellati i riti della Settimana Santa, ha commentato: “La #Pasqua è la festa della #pace, la pace del Signore risorto. È un’occasione particolare per rinnovare l’invito a mettere fine a questa stoltezza della guerra. In Terra Santa la situazione è molto difficile. Però spero che almeno all’interno si possano celebrare i riti della Settimana Santa”. Quanto ad un possibile appello della Santa Sede in vista della Pasqua, Parolin ha risposto: “Immagino che il Papa lo farà”. Infine, al Cardinale è stato chiesto un commento sul tredicenne che, in provincia di #Bergamo, ha accoltellato la sua professoressa: “Di fronte a questi fenomeni c’è bisogno anche di un intervento normativo che, nella misura del possibile, prevenga e impedisca questi episodi. Ma, nello stesso tempo, occorre considerare che sono questioni di ampia portata, di valori”. Secondo Parolin, “è una questione principalmente di educazione: bisogna chiedersi quali sono i valori a cui si ispirano i giovani e quali sono i valori che non trasmettiamo ai nostri #giovani e che impediscono queste degenerazioni”. “Ho sentito dire in una trasmissione che la scuola è teatro di violenza - ha concluso il Cardinale -. La #scuola deve diventare un luogo dove si impara a vivere insieme, a rispettarsi e ad essere costruttivi”.