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

Резултати

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

Пребарај: #williamshakespeare

当前筛选 #williamshakespeare清除筛选
LaMusaEra

@LamusaEra · Post #5053 · 25.06.2024 г., 16:04

Mis ojos no están enamorados de ti, Ven tus vicios con claridad. Y el corazón no es ni una sola de tus faltas No ve y no está de acuerdo con sus ojos. El habla no deleita tus oídos. Tu voz, tu mirada y el tacto de tus manos, Seduciendo, no pudieron atraerme al festival del oído, la vista y el tacto. Y, sin embargo, los sentimientos externos no se dan. Ni los cinco, ni cada individuo. Para asegurar un pobre corazón, Que esta esclavitud es fatal para él. Sólo en mi desgracia me alegro, Que eres mi pecado y eres mi infierno eterno. #WilliamShakespeare

LaMusaEra

@LamusaEra · Post #4651 · 14.05.2024 г., 16:26

"El amor es un faro elevado sobre la tormenta, Sin desvanecerse en la oscuridad y la niebla, El amor es la estrella por la que el marinero Determina un lugar en el océano." #WilliamShakespeare

LaMusaEra

@LamusaEra · Post #4620 · 11.05.2024 г., 14:56

No sé cómo ocultar mis sentimientos: cuando tengo un motivo de tristeza, debo estar triste y no sonreír ante las bromas de nadie; cuando tengo hambre, debo comer y no esperar a nadie; cuando tengo sueño, debo dormir sin preocuparme por los asuntos de nadie.Cuando me divierto, ríe y nunca finjas el estado de ánimo de nadie. #WilliamShakespeare

📺 AnimeAction++

@animeactioz · Post #3608 · 04.12.2023 г., 21:40

Baraou no Souretsu aka Bara-Ō no Sōretsu | Requiem of the Rose King 📅Año 2022 País🇯🇵Japón 🎥Dirección#KentarôSuzuki 📄Guion Hiroki Uchida. 📚Manga#AyaKanno 📖Obra#WilliamShakespeare 🎼Música Kou Otani 🎬Productora J.C.Staff Género#SeriedeTV#Animación#Intriga#Manga#EdadMedia#SigloXV#Venganza#Acción#Drama#Sobrenatural Reparto | Trailer | Sinopsis ⏱Duración 23min. 🖥Resolución 720x400 🗣Idioma Japones Subtítulos Latino Season 1 Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 Suscripción a este Anime 👉🏻Aquí Índice de Animaciones 👉🏻Aquí

📺 AnimeAction++

@animeactioz · Post #3267 · 09.07.2023 г., 10:44

Baraou no SouretsuSeason 1 aka Bara-Ō no Sōretsu | Requiem of the Rose King 📅Año 2022 País Japón 🎥Dirección#KentarôSuzuki 📄Guion Hiroki Uchida. 📚Manga#AyaKanno 📖Obra#WilliamShakespeare 🎼Música Kou Otani 🎬Productora J.C.Staff Género#SeriedeTV#Animación#Intriga#Manga#EdadMedia#SigloXV#Venganza#Acción#Drama#Sobrenatural Reparto | Trailer | Sinopsis ⏱Duración 23min. 🖥Resolución 720x400 🗣Idioma Japones Subtítulos Latino Season 1 Episodio01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 Suscripción a este Anime 👉🏻Aquí Índice de Animaciones 👉🏻Aquí