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

Резултати

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

Пребарај: #carpinteria

当前筛选 #carpinteria清除筛选
Bricolaje y ferretería

@bricolaje_ferreteria · Post #82 · 19.12.2023 г., 11:51

¿Cuándo usar masilla para reparar la madera? ¿Cuándo es adecuado usar masilla para reparar madera? Descubre las situaciones más comunes y cómo sacar el máximo provecho de este recurso. ➡️ Leer más#carpinteria

Hashtags

Bricolaje y ferretería

@bricolaje_ferreteria · Post #52 · 23.11.2022 г., 18:38

¿Cómo decapar un mueble de madera? Decapado químico, limpieza con arena, decapado térmico, lijado... Esta guía te presenta los 4 mejores métodos para decapar un mueble de madera pintado, antes de personalizarlo, repintarlo o tratarlo... Leer más#carpinteria#decapado

Bricolaje y ferretería

@bricolaje_ferreteria · Post #45 · 20.10.2022 г., 10:01

Cómo instalar una cerradura de sobreponer en puerta de madera […] vamos a instalar una cerradura de sobreponer en puerta de madera. Pero, ¿y cuál es la finalidad de colocar una cerradura de sobreponer? Pues añadirle un complemento de seguridad extra o un… Leer más#carpinteria#puertas

Bricolaje y ferretería

@bricolaje_ferreteria · Post #50 · 12.11.2022 г., 19:47

CutList Optimizer, calculadora de cortes CutList Optimizer es una aplicación o software online que te permite hacer cálculos de los cortes que vas a efectuar, ya sea en chapas de madera, cualquier lámina, tela, etc. Así, podrás saber cuántos recortes puedes aprovechar de determinada superficie, qué área se desperdicia, etc., sin que tengas que improvisar. Ver recurso#carpinteria#software#corte

Bricolaje y ferretería

@bricolaje_ferreteria · Post #80 · 27.11.2023 г., 17:46

La carcoma, el peor enemigo de la madera: qué es, cómo tratarla y formas de prevenirla Descubre qué es realmente la carcoma y cuál es su mayor peligro. Aprende a identificarla antes de que sea demasiado tarde y cómo saber si está activa. Evita el principal factor que atrae esta plaga, deshazte de ella y, sobre todo, previene futuros ataques a tus muebles y piezas de madera. Leer más#carcoma#madera#tratamiento#carpinteria ➡️Xylazel anticarcoma de 5 l.#publi

Muebles del Hogar

@MueblesDelHogar · Post #135 · 12.04.2021 г., 14:37

¡Mira estas ideas con madera para el hogar! 😍 Hoy te compartimos #ideas geniales que puedes realizar tu mismo en casa, solo necesitas un poco de madera y creatividad.👨‍🔧 #mueblesinteligentes#melamina#muebles#madera#carpinteria#aprendamosjuntos#hazlotumismo#aprende

Muebles del Hogar

@MueblesDelHogar · Post #125 · 09.04.2021 г., 14:45

📚 Para los amantes de la lectura, hoy te compartimos ideas de #libreros que puedes hacer tu mismo.👨‍🔧 #mueblesinteligentes#melamina#muebles#repisas#carpinteria#aprendamosjuntos#hazlotumismo#hogar#pallets#libros