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

Резултати

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

Пребарај: #codeium

当前筛选 #codeium清除筛选
智能视界

@AITimes365 · Post #86 · 13.12.2023 г., 12:37

#境外AI#编程助手#Codeium Codeium 编程助手针对个人完全免费使用! 提交下面的表格,将您自己列入 Codeium 中 GPT-4 封闭测试版的候补名单。GPT-4 仅支持 Codeium 聊天。 申请地址

智能视界

@AITimes365 · Post #201 · 15.11.2024 г., 06:04

#境外AI#Codeium#编程助手#编程IDE Windsurf 是 Codeium 的下一代 AI IDE,旨在让您保持顺畅。在此页面上,您将找到有关如何在计算机上安装 Windsurf、浏览入门流程以及开始您的第一个 AI 驱动项目的说明。 目前大模型提供:GPT-4o ,Claude 3.5 Sonnet,Cascade Base(Codeium) 新用户可享受2周免费试用,体验所有功能! 官网&下载 来自频道:智能视界

耕读频道

@iGengdu · Post #625 · 21.11.2024 г., 01:45

#Cursor#Codeium#Claude专业版#o1#推荐 介绍两款融合AI服务的编辑器:Windsurf和Cursor Windsurf 由Codeium开发,是一款似于Cursor的AI驱动编辑器。目前,这些编辑器都处于推广期,注册都送一定时长的专业版服务。目前,通过这个链接注册Windsurf,可以享受Windsurf提供8周专业服务,其中包括Claude 3.5 Sonnet、ChatGPT 4等服务。(注意:使用时要用代理,否则可能会掉专业版) 更新:激活码已经无法激活Pro服务,目前注册的账号,只能免费用Claude 3.5 Sonnet(Claude官方对于免费帐户,暂时将Claude 3.5 Sonnet切换为 Claude 3 Haiku了;11月22日更新,免费帐户已经切回到Claude 3.5 Sonnet了)。 Cursor目前注册送15天专业版体验服务(同一邮箱注销后,可重新注册)。注册地址点击这里,专业服务包括提供Claude 3.5 Sonnet、ChatGPT o1等服务。 由智汇AI收集整理。 📢频道✈️群组 (耕读)📬投稿