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

Пребарај: #partizanskaya

当前筛选 #partizanskaya清除筛选

🚇🪖Partizanskaya: un homenaje subterráneo a los héroes del pueblo En el corazón del barrio de Izmaylovo de Moscú, la estación de metro Partizanskaya no solo conecta trenes, sino también memorias. Inaugurada el 18 de enero de 1944, en plena Segunda Guerra Mundial, esta estación de la línea Arbatsko-Pokrovskaya fue concebida como parte de un ambicioso proyecto urbano que incluía el colosal “Estadio de los Pueblos”, pensado para albergar a 120.000 personas. Aunque el estadio nunca se construyó como se planeó, la estación quedó con una estructura única: tres vías y dos plataformas isla, diseñada para movilizar multitudes tras eventos masivos. Durante la guerra, las obras se detuvieron y las instalaciones sirvieron como refugio antiaéreo. Su nombre original, 'Parque de Cultura y Recreo Izmailovsky en honor a Stalin', fue cambiado varias veces, reflejando los vaivenes políticos del país. En 2005, coincidiendo con el 60º aniversario de la Victoria sobre el nazismo, recibió su nombre actual: 'Partizanskaya', en honor a los partisanos soviéticos que combatieron en la retaguardia. El diseño artístico de la estación es una oda al heroísmo popular. El escultor Matvey Manizer, célebre por sus obras monumentales en estilo realista socialista, abandonó la idea inicial de representar atletas y optó por figuras de resistencia. Así nacieron las esculturas de Zoya Kosmodemyanskaya,la joven ejecutada por los nazis en 1941, y Matvey Kuzmin, campesino de 83 años que sacrificó su vida para emboscar a soldados alemanes. La composición central, titulada “Partisanos”, muestra a un anciano, una mujer y un niño, simbolizando la participación de todos los sectores sociales en la lucha. Las columnas están decoradas con bajorrelieves de Saul Rabinovich, que evocan armas, bosques y escenas de guerrilla. Aunque los frescos de Andrey Goncharov, artista gráfico y muralista, no sobrevivieron al paso del tiempo, su legado permanece en la memoria visual de la estación. Descubre más sobre Zoya Kosmodemyanskaya aquí 👉https://t.me/vamosarusia/1681 #MetroDeMoscú#HistoriaSoviética#Partizanskaya#ArteSocialista#SegundaGuerraMundial Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia