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

Резултати

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

Пребарај: #pogba

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

@info288_deportes · Post #35562 · 09.10.2024 г., 09:00

⚽️Juventus Pogba y un futuro en el aire: perdonado por el TAS, 'condenado' por la Juventus#Juventus#Pogba Paul Pogba es, finalmente, libre. Y lo es (casi) en el sentido literal de la palabra. Tras haber sido reducida su sanción por dopaje por el TAS (tras su recurso), la Juventus y el francés negocian la ruptura del contrato del galo. No cuenta para Thiago Motta y su salario, de 8 millones de euros netos por curso más bonus, es una losa para las arcas juventinas. Pero volvamos al principio: Pogba fue inhabilitado (en un principio) hasta septiembre de 2027 por dar positivo en DHEA en un control rutinario rutinario tras el choque de la primera jornada de la Serie A 2023-24 contra Udinese. La sanción era durísima. Cuatro años. Casi un retiro prematuro. Pero él siempre alegó que no había sido algo intencional. Y ahora el TAS le da la razón. "La ingestión de DHEA por parte del Sr. Pogba, la sustancia por la que dio positivo, no fue intencional y fue el resultado de un error al tomar un suplemento recetado por un médico en Florida, después de que el Sr. Pogba hubiera recibido garantías de que el médico, que había afirmado haber tratado a varios atletas estadounidenses e internacionales de primer nivel, conocía y era consciente de las obligaciones antidopaje del Sr. Pogba", fue el veredicto. Sanción reducida a 18 meses. Es decir, podría volver a entrenar en enero con la Juventus... y a jugar en marzo de 2025. Ahora, la pregunta es otra: ¿llegará a jugar como 'bianconero' en realidad? No lo parece. El galo regresó en 2022 tras acabar contrato en el Manchester United pero el resultado, ya antes de la sanción, fue tétrico: muchas lesiones y solamente 12 partidos disputados con la 'Vecchia Signora' pese a tener un sueldo desproporcionado para lo que es el 'Calcio'. La suspensión, de hecho, fue un 'alivio económico' para los de Turín pues pasó a cobrar 2.000 euros netos al mes. Pero eso se acaba en 2025. Vuelve a sus estándares. Y estos no entran en los parámetros de viabilidad que busca la Juventus. https://www.marca.com/futbol/liga-italiana/2024/10/08/67053c2a268e3ec96e8b4591.html 🏆@Info288_deportes