@RsRamble · Post #544 · 23.05.2024 г., 13:15
每次都敬佩这些头壳和兽装的,我原皮出动都感觉微热 是原创角色 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#originalcharcter#furry#coser
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
Пребарај: #doujima
@RsRamble · Post #544 · 23.05.2024 г., 13:15
每次都敬佩这些头壳和兽装的,我原皮出动都感觉微热 是原创角色 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#originalcharcter#furry#coser
@RsRamble · Post #537 · 21.05.2024 г., 12:42
Serving with pride and honor Join the Black Knights Guild today 是当事人给的配文,好尬啊,但还是采用了 是原创角色 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#originalcharcter#samurai#katana#coser
@RsRamble · Post #541 · 21.05.2024 г., 14:02
以前拍过的温迪,当时他就拿小提琴,现在还是小提琴 人家是真的会拉小提琴的…… 不过他这次套了层妹抖服,所以都不好意思联名了XD 原神的温迪 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#genshinimpact#原神#venti#ウェンディ#coser
@RsRamble · Post #517 · 15.05.2024 г., 09:18
“没有尊重的船员和不要求尊重的船长很快就会分崩离析。” 和上面两张同时拍的,只不过duang了点特效灯光 海贼王的罗罗诺亚·索隆 拍摄于Doujima D2 (2024-05-12) #singapore#doujima#doujima2024#doujimasg#onepiece#ワンピース#roronoazoro#zorororonoa#ロロノアゾロ#coser
@RsRamble · Post #515 · 14.05.2024 г., 12:51
“如果我死在这里,那我就是一个只能走到这一步的人。” 是村里各种展的常客,很有人气,难得有机会拍到了几张 海贼王的罗罗诺亚·索隆 拍摄于Doujima D2 (2024-05-12) #singapore#doujima#doujima2024#doujimasg#onepiece#ワンピース#roronoazoro#zorororonoa#ロロノアゾロ#coser
@RsRamble · Post #549 · 26.05.2024 г., 12:48
我会讲是被超大号扇子吸引过去的嘛 其实拍了不少,但动作都差不多,所以只找了几张不太相似的 拍黑衣果然充满了挑战 火影忍者的手鞠 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#naruto#narutoshippuden#temari#テマリ#coser
@RsRamble · Post #542 · 21.05.2024 г., 15:12
套了妹抖服,所以一眼没认出来 是何种新型时尚潮流嘛 原神的神里绫华 拍摄于Doujima D2 (2024-05-12) #singapore#suntec#doujima#doujima2024#doujimasg#genshinimpact#原神#kamisatoayaka#ayakakamisato#神里綾華#coser
@RsRamble · Post #518 · 15.05.2024 г., 12:19
是蹭拍,但事后问过了 营业结束在收摊时看到旁边一直在拍,于是也上去拍了两张 EVA的凌波丽 拍摄于Doujima D2 (2024-05-12) #singapore#doujima#doujima2024#doujimasg#eva#evangelion#新世紀エヴァンゲリオン#ayanamirei#reiayanami#綾波レイ#coser
@RsRamble · Post #533 · 17.05.2024 г., 09:22
可能他看着并不像菊里,但他真的会弹贝斯 而且拿的真的是某种清酒……的空罐子 满血复活,对酒当歌是吧 孤独摇滚的广井菊里 拍摄于Doujima D1 (2024-05-11) #singapore#suntec#doujima#doujima2024#doujimasg#btr#bocchitherock#ぼっちざろっく#hiroikikuri#kikurihiroi#廣井きくり#coser