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

Резултати

Пронајдени 2 слични објави

Пребарај: #maccabi

当前筛选 #maccabi清除筛选
🏆 Info 288 - DEPORTES

@info288_deportes · Post #35756 · 31.10.2024 г., 22:34

🏀🇪🇺Euroliga Maccabi 79-78 Real Madrid#Euroliga#Maccabi#RealMadrid Un tiro en suspensión de Saben Lee a 0,1 décimas para el final sentenció al Madrid (79-78), que encadenó su sexta derrota seguida fuera de casa entre Liga y Euroliga. Los blancos siguen sin conocer el triunfo a domicilio, donde volvieron a mostrarse vulnerables, desperdiciando la ventaja de 9 puntos con la que llegó al último cuarto (55-64, min 30). https://www.marca.com/baloncesto/euroliga/2024/10/31/maccabi-somete-real-madrid-vuelve-pelele-domicilio.html Olympiacos 95-74 Barcelona#Euroliga#Olympiacos#Barcelona El Barça llegó al Pireo como líder de la Euroliga tras ganar a principios de semana en Estambul ante el Efes, algo que los catalanes no pudieron repetir esta vez ante Olympiacos en el peor partido de la temporada donde sucumbieron ante la presión del Estadio de la Paz y la Amistad. https://www.marca.com/baloncesto/euroliga/2024/10/31/olympiacos-masacra-barca-desastroso.html Otros marcadores Milano 99-90 Virtus Alba 70-86 Anadolu 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35692 · 24.10.2024 г., 21:30

⚽️🇪🇺Europa League Athletic 1-0 Slavia Praga#EuropaLeague#Athletic#Slavia El Athletic necesitaba un partido como el del Slavia. Pasado el furor del estreno ante el clásico que es la Roma y superado el acelerón que supuso el cruce con el AZ. Por eso de ser el primer partido europeo en muchos años en San Mamés, había que ponerse a la altura de lo que es la cotidianidad en el continente. Este jueves tocaba medirse a uno de esos equipos que han viajado por todos los torneos de escarapela UEFA y que siempre son un termómetro de nivel. El líder de la liga checa se presentó en La Catedral con sólo un partido perdido en los 17 anteriores -cayó ante el Lille con un resultado que le apartó de la Champions- y se fue de Bilbao con la segunda derrota del curso. https://www.marca.com/futbol/europa-league/cronica/2024/10/24/671ab478e2704e3e5e8b456c.html Maccabi 1-2 Real Sociedad#EuropaLeague#Maccabi#RealSociedad La Real, con más titulares de los que se esperaban en el once, tardó en entrar en el partido, quizás por el frío ambiente, casi sin público, también porque el Maccabi salió con más intensidad que Niza y Anderlecht, los anteriores rivales, y no fue hasta pasados los primeros 10 minutos cuando llegó la primera ocasión. Fue un pase de la muerte de Aramburu, al que Mishpati, el portero local, llegó antes que Oyarzabal https://www.marca.com/futbol/europa-league/cronica/2024/10/24/671a7165e2704e991c8b45a9.html 🏆@Info288_deportes