如何修改tkinter中ttk.Treeview的tags属性值(新增/删除/替换)
ttk.Treeview 本身就提供原生的item()方法支持直接修改指定项的tags属性,无需额外第三方组件。所有修改操作都基于该方法实现,以下针对你提出的3个问题分别给出实现方案,操作对象为你示例代码中iid为1的项:
问题1:给当前tags为'1'的项新增标签"NEWTAG",同时保留原有标签
实现逻辑:先读取当前项的现有tags,追加新标签后再回写覆盖原有tags配置。
# 获取当前项的tags,返回结果为元组类型 current_tags = tree.item(1, "tags") # 追加新标签后回写 updated_tags = list(current_tags) + ["NEWTAG"] tree.item(1, tags=updated_tags)
问题2:将原有标签全部替换为"NEWTAG",仅保留新标签
实现逻辑:直接给tags属性赋值新值,会直接覆盖原有所有标签配置。
# 直接覆盖原有tags tree.item(1, tags=["NEWTAG"])
问题3:删除指定标签"NEWTAG",仅保留原有标签'1'
实现逻辑:读取现有tags后过滤掉需要删除的标签,再回写。
current_tags = tree.item(1, "tags") # 过滤掉要删除的NEWTAG标签 updated_tags = [tag for tag in current_tags if tag != "NEWTAG"] tree.item(1, tags=updated_tags)
补充说明
tree.item(iid, "tags")用于读取指定iid项的标签列表,返回结果为元组类型tree.item(iid, tags=新标签序列)用于修改标签,新标签可以传列表、元组或单个字符串,若传入单个字符串会被自动识别为单个标签- 可通过
"指定标签" in tree.item(iid, "tags")快速判断某标签是否已存在于当前项
内容的提问来源于stack exchange,提问作者Sun Bear
相关产品推荐
相关产品推荐

