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

Пребарај: #duestati

当前筛选 #duestati清除筛选
Marx21.it

@marx21news · Post #9644 · 27.01.2026 г., 14:49

Le divisioni sul "Board of Peace" per Gaza: cosa ci dicono davvero? Dal Forum di Davos è emersa una nuova iniziativa guidata dagli Stati Uniti: la creazione di un “Board of Peace” per la Striscia di Gaza. Ma mentre una dozzina di Paesi ha firmato, mancano all’appello sia Israele che la Palestina, insieme agli altri quattro membri permanenti del Consiglio di Sicurezza ONU. Perché tanta diffidenza? Molti Paesi, tra cui Germania, Francia e diversi nordici, hanno espresso riserve o detto un chiaro “no”. Il timore è che questo meccanismo parallelo possa sovrapporsi o addirittura indebolire il ruolo delle Nazioni Unite, l’unica piattaforma universale nata dalle ceneri della guerra per garantire pace e sicurezza internazionale. Il punto cruciale: La pace a Gaza è un’urgenza umanitaria e politica che riguarda tutti. Ma escludere le parti direttamente coinvolte e aggirare il sistema ONU rischia di essere controproducente. Come ha sottolineato la Cina in più occasioni, qualsiasi soluzione duratura deve passare attraverso il pieno coinvolgimento dell’ONU, il dialogo diretto tra Israele e Palestina, e l’attuazione della “soluzione dei due Stati”. La comunità internazionale sembra ricordare una lezione fondamentale: La pace non si costruisce con meccanismi esclusivi o “clique”, ma con multilateralismo inclusivo, rispetto del diritto internazionale e volontà concreta di ascoltare tutte le voci in gioco. In un momento di profonde trasformazioni globali, preservare e rafforzare il sistema ONU non è una questione di forma, ma di sostanza: è la garanzia più solida che abbiamo per affrontare le crisi senza cadere nella frammentazione e nel confronto. #Pace#Gaza#NazioniUnite#BoardOfPeace#DirittoInternazionale#DueStati#MedioOriente#Multilateralismo https://www.marx21.it/internazionale/che-cosa-rivelano-le-divisioni-internazionali-attorno-al-board-of-peace/