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

Резултати

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

Пребарај: #x638

当前筛选 #x638清除筛选
量子心跳观测站

@dokidokisulu · Post #9558 · 26.01.2026 г., 04:30

蛮族的侵略 - 被强娶豪夺的村庄 蛮族に狙われた村~村丸ごと寝取られちゃうシミュレーション~ 故事内容 蛮族们袭来主人公的村庄!! 如果失败,女主角们就会变成玩物 主人公能否守护女主角们呢!? 基本玩法 有早晨,中午,晚上的概念,每个时间可以行动一次 和女主对话可以提升好感度 远征可以赚取贡献度 或者防御蛮族的袭击 游戏系统 〇动画 立绘,影绘,H场景的一部分采用动画形式 用了特意从远处观看的场景NTR感倍增!! 〇全村NTR 如果败北太多,蛮族就会 在村子里强行做爱 女主角们当然也会变成蛮族的妓女!! 〇随机H 部分H场景每次都会出现不同的内容 可以反复享受 〇卖春 村庄状况不佳时 女主们会去卖春 不仅会有陌生男人来嫖 主人公也可以嫖 〇未婚夫 开始时未婚夫是情人 努力改变未婚夫吧 放着不管的话女主就会和情夫结婚 〇战斗 战斗可以一键结束,操作简单 不擅长游戏的人也不会碰壁 〇结局 和女主结婚的话就会迎来结局 可以和两个女主同时结婚!! 🤿🤿🤿🤿🤿🤿🤿🤿🤿🤿 😁入正链接 ➡️下载地址⬅️ #SLG#援交#NTR#调教#野战#巨乳 #PC#RJ400653#x638