@profile_pictures_tm · Post #6365 · 09.01.2022 г., 12:16
#Tigers
Hashtags
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
Пребарај: #tigers
@profile_pictures_tm · Post #6365 · 09.01.2022 г., 12:16
#Tigers
Hashtags
@Profile_pictures_tm · Post #4561 · 02.09.2021 г., 12:17
#Tigers
Hashtags
@MLB_Daily · Post #17138 · 06.05.2026 г., 18:08
🚨🐯 La creencia inicial es que Tarik Skubal podría regresar en unos dos meses, según Jon Heyman. 🏥 Skubal se está sometiendo a una cirugía hoy en su codo izquierdo. #Tigers#Skubal 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #17111 · 04.05.2026 г., 19:23
🚨🐯 Tarik Skubal está siendo colocado en la lista de lesionados debido a cuerpos sueltos en su codo y va a necesitar cirugía. #Skubal#Tigers 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #16684 · 05.02.2026 г., 23:41
🐯🐯 Tarik Skubal ganará $32 millones esta temporada después de que hoy ganara su caso de arbitraje contra los Tigers. Los Tigers presentaron una oferta de $19 millones. #️⃣#Tigers#Skubal 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #16239 · 21.11.2025 г., 14:51
🐯🐯 El nombre de Tarik Skubal ha surgido a menudo en rumores de traspasos esta temporada baja 👀 Con Skubal listo para ser agente libre después de la temporada 2026, ¿crees que los Tigers deberían cambiarlo? 🤔 #️⃣#Tigers#Skubal 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #16115 · 06.11.2025 г., 13:51
🐯🐯 Buster Olney piensa que los Tigers podrían “considerar seriamente” intercambiar a Tarik Skubal si pueden obtener lo que quieren en un intercambio, con los Mariners, Mets y Red Sox listados como posibles pretendientes. #️⃣#Skubal#Tigers 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #17142 · 07.05.2026 г., 00:06
🚨🐯 Framber Valdez ha sido suspendido por 6 juegos y multado por darle pelotazo a Trevor Story ayer. #Tigers#FValdez 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #16679 · 05.02.2026 г., 02:05
🐯⭐️ Los Tigers y el lanzador zurdo Framber Valdez acordaron un contrato de tres años por 115 millones, según múltiples informes, incluido el de Mark Feinsand de MLB. #️⃣#Tigers#FValdez 🗞 | t.me/MLB_Daily
@MLB_Daily · Post #17045 · 15.04.2026 г., 23:50
🐯 Los Tigers anunciaron que Kevin McGonigle, de 21 años, ha firmado una extensión hasta 2034 por 150 millones. McGonigle es el prospecto número 2 en la lista de los 100 mejores prospectos de MLB Pipeline. #Tigers#McGonigle 🗞 | t.me/MLB_Daily
Hashtags
@MLB_Daily · Post #16994 · 25.03.2026 г., 02:16
🐯 El prospecto número 2 de la MLB, Kevin McGonigle, ha sido incluido en la lista del Día de Apertura de los Tigers. #Tigers#McGonigle 🗞 | t.me/MLB_Daily
Hashtags
@MLB_Daily · Post #16359 · 13.12.2025 г., 20:56
🐯🅱 Kenley Jansen está firmando un contrato de un año con los Tigers, según múltiples informes. #️⃣#Tigers#Jansen 🗞 | t.me/MLB_Daily