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

Пребарај: #barocco

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

@papaevaticanonews · Post #9334 · 14.02.2026 г., 16:04

In occasione della mostra "#Bernini e i #Barberini" (Palazzo Barberini, 12 febbraio - 14 giugno 2026), il Polo Museale della Basilica Papale di Santa Maria Maggiore e le Gallerie Nazionali di #Arte Antica Palazzo Barberini e Galleria Corsini avviano un dialogo culturale volto alla valorizzazione congiunta del patrimonio artistico legato al maestro del #barocco, Gian Lorenzo Bernini, e alla sua famiglia. Per la mostra al Palazzo Barberini la Basilica ha concesso in prestito il Busto ritratto del canonico Giovanni Angelo Frumenti, opera attribuita al Bernini ed appartenente al monumento funebre del canonico custodito nel Battistero di Santa Maria Maggiore. In questa felice circostanza le due Istituzioni hanno voluto sviluppare un’eccezionale sinergia dedicata ai rispettivi ospiti. Presentando il biglietto della mostra Bernini e i Barberini, i visitatori potranno, infatti, accedere al Polo Museale della Basilica Papale di Santa Maria Maggiore con tariffa promozionale. A loro volta, i visitatori del Polo Museale di Santa Maria Maggiore potranno usufruire della tariffa ridotta per la visita dell’esposizione presso Palazzo Barberini, esibendo il proprio titolo di ingresso. Per l’occasione, è stata inoltre creata una speciale visita guidata, I Bernini a Santa Maria Maggiore: il genio tra arte e fede, dedicata a coloro che vogliono approfondire il legame tra Gian Lorenzo Bernini e la Basilica Papale di Santa Maria Maggiore: un itinerario che consente l’incontro con memorie straordinarie tra cui la tomba di Pietro e Gian Lorenzo Bernini, il Battistero con il rilievo dell’Assunzione della Vergine, la scultura di Filippo IV re di Spagna, la celeberrima scala elicoidale per concludersi poi sulle terrazze panoramiche, con una vista mozzafiato che spazia fra i tetti di Roma, dal luogo della prima bottega dell’artista fino alla cupola di San Pietro. La collaborazione con Palazzo Barberini rappresenta un’occasione unica per approfondire la conoscenza dei Bernini permettendo di vivere un’esperienza culturale integrata tra due eccezionali poli museali, entrambi custodi privilegiati della storia e dell’arte barocca a #Roma.