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

Резултати

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

Пребарај: #box

当前筛选 #box清除筛选
Main Event | Sport News

@maineventnews · Post #96 · 22.07.2024 г., 20:01

Jake Paul knocked out Mike Perry in the 6th round 👊 I expected to win. I should have won in the first round, but Perry survived. Mike Tyson, you're next, sign the contract. #Box 👁Subscribe to Main Event | Sport News

Hashtags

Main Event | Sport News

@maineventnews · Post #60 · 18.07.2024 г., 13:01

Jake Paul on the fight with Mike Perry: "Maybe at the beginning, he’ll land a couple of heavy shots, maybe he’ll be all wild and unpredictable, but as the fight progresses, I’ll start breaking him down with my footwork, jab, and body shots." #Box 👁Subscribe to Main Event | Sport News

Hashtags

Main Event | Sport News

@maineventnews · Post #52 · 17.07.2024 г., 12:00

Diaz Sues Organizers of Fight with Masvidal #box#mma Nate Diaz has filed a lawsuit against the organizers of the fight with Jorge Masvidal. Nate claims he had an agreement for a $10,000,000 payout for the fight. He received an advance payment of $1,000,000, with the remaining $9,000,000 to be paid after the fight. The lawsuit states that the company is refusing to make the payments, claiming that the event was unprofitable. 👁Subscribe to Main Event | Sport News

Hashtags

科技&趣闻&杂记

@kejiqu · Post #3472 · 26.05.2025 г., 08:08

ChatGPT深度研究功能现在可以连接并读取来自Box和Dropbox网盘中的数据 据 OpenAI 官方发布的消息,目前 ChatGPT 深度研究功能已支持连接 Box 和 Dropbox 平台的账号,添加账号并授权后 ChatGPT 可以通过读取用户网盘中存储的文件来优化研究报告。 用户在连接账号后可以将 Dropbox 等网盘的指定路径作为数据来源,这样 ChatGPT 在进行深度研究功能时也会读取这些文件,如果有重要数据则可能会将这些数据添加到研究报告中。 用户自己提供数据还有个好处是 ChatGPT 可以生成更契合用户需要的研究报告,用户提供的数据越多并通过提示词引导 ChatGPT,最终生成的效果可能要比 ChatGPT 直接从互联网上抓取数据更好。 另外 OpenAI 也准备为 ChatGPT 带来 MCP 协议的支持,到时候 ChatGPT 也可以通过 MCP 连接外部应用程序获取数据,到时候无论是日常提问还是撰写深度研究报告可能都会更方便。蓝点网 🏷#ChatGPT#Box#Dropbox 📢频道👥群组📝投稿

探索号

@seeker_rc · Post #19595 · 04.05.2026 г., 14:55

给 sing-box config 写了一套完整的 TypeScript 类型 以前需要同时维护几份 sing-box config 时搓的东西,目前已经维护一年半了。 ⦁ 主要特点是通过 ts 的泛型校验一下 tag ,sing-box tag 太多了,写的时候经常忘。 ⦁ 用 ts 的话可以看一下 playground ,其实就是把配置拆碎,然后组合成一份 sing-box config ,这样子维护几份 sing-box config 就比较省力(因为几份 config 里会重用大部分 rule-set, outbounds 等等)。 ⦁ 如果没这个需求也可以直接用 json schema ,直接在现有的 json 里加上就好了,在 LSP 加持下... via V2EX 分享创造 标签: #sing#box#config ⚡️探索号频道 ⚡️探索者频道 ⚡️探索者交流群 ⚡️ Youtube 频道:科技探索者 每天推荐有趣内容,欢迎订阅、转发。