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

Резултати

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

Пребарај: #dogcare

当前筛选 #dogcare清除筛选
科学新知

@random_knowledge_dushu · Post #3610 · 15.03.2023 г., 14:34

吃水果的时候狗子总是眼巴巴的,那么,哪些可以一起分享,哪些绝对不能给呢? 可以吃的有: 🍎🍌🍈🍓🍑🍍🥭🍉🍊 苹果,OK! 香蕉,奇异果,没问题。 甜瓜西瓜~解渴! 蓝莓,草莓,蔓越莓,树莓,莓味可口~ 芒果,椰肉,菠萝,超美味! 梨子,橘子,桃子,李子,yum,但仅限果肉!! 注意,以上水果,喂的时候一定要去皮去籽去核。 不能吃的水果有: 🍅🍇🥑🍒 番茄!虽然成熟的番茄通常被认为对狗是安全的,但它的绿色部分含有一种叫做茄碱的有毒物质。 现在很多西红柿都是催熟的,为了以防万一,最好不要吃。 牛油果,它的果核、果皮和叶子含有一种导致狗呕吐和腹泻的毒素。 樱桃,樱桃植物含有氰化物,对狗有毒。 氰化物会破坏细胞氧气输送,这意味着狗的血细胞无法获得足够的氧气。 如果狗吃了樱桃,请注意瞳孔放大、呼吸困难和牙龈发红,因为这些可能是氰化物中毒的迹象。 葡萄和葡萄干,对狗是剧毒的,会导致急性肾功能衰竭。 一定要把葡萄类食品收好! 百香果,NO,果肉是安全的,籽有毒,但是很难把它们分开对不对?所以干脆不要冒险。石榴也同理,不可以喂。 #dogcaresource

Hashtags

Home decor

@dzdigital3 · Post #18904 · 23.08.2025 г., 14:59

Outdoor Dog Water Fountain Dog Sprinkler Toy Step on Water Feeder Adjustable Pressure Pet Drinking Dispenser for Garden Backyard #doglover#dog#dogfood#dogsofinstagram#doglife#dogoftheday#dogcare#animals#animallover Get It By Temu 🛒👇 https://app.temu.com/m/n0qrysqlf76 Get It By Aliexpress 👇 https://s.click.aliexpress.com/e/_EG88GUA Get It By Amazon 👇 https://amzn.to/3U16PmA