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

Резултати

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

Пребарај: #anadolu

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

@info288_deportes · Post #35877 · 14.11.2024 г., 22:10

🏀🇪🇺Euroliga Baskonia 75-87 Monaco#Euroliga#Baskonia#Monaco El Baskonia pagó este jueves una horrible primera mitad, en la que se desangró ante el Mónaco y encadenó su cuarta derrota consecutiva en la Euroliga, en un partido que fue perdiendo hasta por 27 puntos (75-87). Los azulgranas, que solo anotaron 7 puntos en el primer cuarto, reaccionaron tras el descanso y lograron bajar la diferencia hasta los 5s, pero pagaron el esfuerzo derrochado en un gran tercer asalto. https://www.infobae.com/america/agencias/2024/11/14/75-87-el-baskonia-se-desangra-en-la-primera-mitad-ante-el-monaco/ Real Madrid 64-74 Anadolu#Euroliga#RealMadrid#Anadolu Como si fuera un cruce directo de la Champions y en el Bernabéu... pero no. El Real Madrid peleó por una remontada imposible ante el Anadolu Efes después de ir 27 puntos abajo (18-45) en el segundo cuarto. El cansancio pudo con un ejercicio notable de fe y de carácter liderado, cómo no, por Facundo Campazzo. Se situó a un punto con cuatro minutos por delante, pero la fatiga hizo el trabajo que se les estaba escapando de las manos a los turcos. El Madrid encajó su primera derrota de la temporada como local y ya son seis tropiezos en Europa en las diez primeras jornadas. https://www.larazon.es/deportes/madrid-roza-remontada-imposible_202411146736725eb747ad0001817a7e.html 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35867 · 12.11.2024 г., 22:44

🏀🇪🇺Euroliga Baskonia 84-89 Anadolu#Euroliga#Baskonia#Anadolu El Baskonia se quedó sin pólvora cuando se jugaba todo ante el Anadolu Efes y cayó derrotado en el toma y daca final por 84-89, cuando aparecieron las estrellas del equipo turco para endosar la primera derrota baskonista en el Buesa Arena en la Euroliga. https://www.marca.com/baloncesto/euroliga/2024/11/12/baskonia-paga-caro-mal-partido-markus-howard.html Real Madrid 98-86 Virtus#Euroliga#RealMadrid#Virtus Necesitaba el Real Madrid una noche así en la Euroliga. Tranquila y que le permitiera jugar cómodo. La tuvo en la visita de la Virtus, cuya defensa facilitó la bacanal ofensiva de los blancos, reducida finalmente a 98-86, aunque la renta llegó a ser de 22 antes de un parcial final de 0-10. https://www.marca.com/baloncesto/euroliga/2024/11/12/real-madrid-pega-bacanal-ofensiva.html Otros marcadores Fenerbahce 87-76 Bayern Monaco 90-98 Estrella Roja Alba 105-101 Milano Olympiacos 94-92 Asvel Panathinaikos 93-87 Maccabi 🏆@Info288_deportes

🏆 Info 288 - DEPORTES

@info288_deportes · Post #35742 · 29.10.2024 г., 22:17

🏀🇪🇺Euroliga Anadolu 88-97 Barcelona#Euroliga#Anadolu#Barcelona El Barça ratificó su condición de líder en el inicio de la segunda doble jornada de la temporada en una complicada visita a Estambul, donde se enfrentó a un Anadolu Efes que no podía contar con su mayor estrella, Shane Larkin, pero que no dio su brazo a torcer en un partido que se acabó llevando el Barça por 88-97. https://www.marca.com/baloncesto/euroliga/2024/10/29/barca-reafirma-lider-efes-exhibicion-metu.html Olympiacos 79-69 Real Madrid#Euroliga#Olympiacos#RealMadrid La mejoría del Real Madrid se vio truncada en El Pireo, donde acabó su racha de cuatro victorias consecutivas. Los blancos se hundieron frente al Olympiacos (79-69) y siguen sin ganar fuera de casa esta temporada: cinco viajes y cinco derrotas. En esta ocasión, tras tener el encuentro bajo control (46-55), cayeron en un pésimo último cuarto en el que tan sólo pudieron anotar 10 puntos y dos canastas en juego. Los 69 son su peor anotación del curso. https://www.marca.com/baloncesto/euroliga/2024/10/29/real-madrid-hunde-pireo-sigue-ganar-fuera-casa.html Baskonia 88-83 Milano#Euroliga#Baskonia#Milano Volver a hacer del Buesa Arena un fortín. Ese era el objetivo de un Baskonia que volvía a su feudo tras caer derrotado el pasado fin de semana ante el Joventut de Badalona. Sin embargo, la cara del equipo de Vitoria en Europa es totalmente diferente a la de la Liga Endesa. https://www.marca.com/baloncesto/euroliga/2024/10/29/increible-forrest-sostiene-baskonia-victoria-milan.html Otros marcadores Alba 83-92 Paris Fenerbahce 84-82 Maccabi Virtus 84-87 Bayern 🏆@Info288_deportes