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

Пребарај: #múnich

当前筛选 #múnich清除筛选
EmbajadaRusaVen

@embajadarusaven · Post #1584 · 09.05.2024 г., 18:50

📣 Lean el artículo del Embajador Sergey Mélik-Bagdasárov publicado @UNoticias: ❗️La URSS fue el único país del mundo que detuvo y luego derrotó a las principales fuerzas de la #Alemania de Hitler. Los #EEUU. llegaron a #Europa después de la aplastante derrota del ejército de Alemania y sus aliados en el territorio de la #URSS ❗️El Pacto de #Múnich, concluido el 30 de septiembre de 1938 entre los representantes de Inglaterra, Francia, Alemania e Italia, es considerado por la mayoría de los historiadores como precursor del estallido de la Segunda Guerra Mundial, ya que fue este acto el que sirvió de punto de partida de la abierta agresión de Hitler contra los Estados europeos vecinos. ☄️ 37 divisiones de los satélites alemanes lucharon contra la URSS. Oficialmente, aparte de Alemania, estaban en guerra con la Unión Soviética los siguientes países europeos: Austria, Italia, Rumanía, Finlandia, Eslovaquia, Hungría y Croacia. Dos millones de extranjeros sirvieron en el ejército alemán. ✔️ La victoria histórico-mundial del pueblo soviético sobre el nazismo alemán tuvo un enorme impacto en la solución de los problemas fundamentales de nuestro tiempo, uno de los más graves de los cuales es el #colonialismo. ⛔️ Ante nuestros ojos con el apoyo de EEUU y los países de la #OTAN las bandas neonazi y neofascista ganan fuerza en Europa, países Bálticos, Ucrania. Están activándose en América Latina. 🔥 Se destaca la aspiración del Gobierno bolivariano y el pueblo de #Venezuela a manifestarse en contra de nazi-fascismo a través de la Ley contra el Fascismo, Neofascismo y Expresiones Similares. 💯 Solo uniendo nuestros esfuerzos lograremos no solo superarla sino erradicarla para la paz, el bienestar y la prosperidad de nuestros niños y las futuras generaciones. #Victoria79#Victory79 Texto completo del artículo🔗https://shorturl.at/joR36