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

Пребарај: #nidodegolondrina

当前筛选 #nidodegolondrina清除筛选

🏰Nido de Golondrina: historia, arquitectura y belleza en el mar Negro El 'Nido de Golondrina', ubicado en el borde rocoso de la costa del Mar Negro en Crimea, es uno de los destinos históricos más emblemáticos y fascinantes de Rusia. Este pintoresco castillo, con una arquitectura que evoca los cuentos medievales, fue construido en 1912 como residencia de verano para el empresario alemán, el barón Wladimir von Steingel. Hoy en día, su silueta se alza como un símbolo de la herencia cultural y natural de la región. No solo destaca por su arquitectura, sino también por los cambios que experimentó a lo largo del tiempo. Inicialmente, el barón Steingel construyó la estructura para disfrutar de la belleza de Crimea y las vistas espectaculares del Mar Negro. Sin embargo, con el tiempo, el castillo cambió de propietarios y propósitos. Durante el período soviético, fue transformado en un restaurante y posteriormente en un espacio para eventos culturales. Desafortunadamente, esta joya arquitectónica cayó en el abandono durante décadas, perdiendo su esplendor original. Fue solo en los últimos años que se emprendieron esfuerzos de restauración que lograron devolverle su belleza y convertirlo en una de las atracciones turísticas más populares de Crimea. El castillo está construido en estilo neogótico y parece casi suspendido sobre un acantilado que se eleva a 40 metros sobre el mar Negro. Su diseño compacto y elegante, con torres y detalles ornamentales, complementa perfectamente el entorno natural. Desde su mirador, los visitantes disfrutan de vistas impresionantes que fusionan el azul profundo del mar con el majestuoso paisaje montañoso. Actualmente, el Nido de Golondrina es un símbolo de Crimea y uno de los lugares más fotografiados de la región. Miles de turistas acuden cada año para admirar su arquitectura, explorar su historia y contemplar las vistas panorámicas que ofrece. Además, este castillo ha servido como escenario para películas, sesiones fotográficas y eventos que celebran la riqueza cultural de Rusia. #NidoDeGolondrina#CastilloCrimea#HistoriaDeRusia#MarNegro#TurismoCultural ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia