我正在尝试在树状视图列中选中一行。
BadgesView.tag_configure("BadgeOfTheWeek", background="yellow")
在对这一行进行标记之前或之后,我希望其他行将程序删除其所有标记。
for row in Treeview:
remove tag from row.
我不确定这是否可行,因为我很难确定所选的行是哪一行,以及从哪一行进行标记。
感谢您的帮助。
答案 0 :(得分:0)
问题:...另一个
rows
已删除其所有tags
Tkinter 8.5 reference - 45. ttk.Treeview
首先,一些定义:
item
在窗口小部件中显示的实体之一。对于文件浏览器,项目可能是目录或文件。 每个项目都与文本标签相关联,也可能与图像相关联。
iid
树中的每个项目都有一个唯一的标识符字符串,称为iid。您可以自己提供iid值,也可以让ttk生成它们。
Treeview
items
之前:item:{'text': 'Text_1', 'values': '', 'tags': ['ALL'], 'image': '', 'open': 0} item:{'text': 'Text_2', 'values': '', 'tags': ['BadgeOfTheWeek', 'ALL'], 'image': '', 'open': 0} item:{'text': 'Text_3', 'values': '', 'tags': ['ALL'], 'image': '', 'open': 0}
环绕Treeview
以获取项目的iid
for iid in self.tree.get_children():
条件:'BadgeOfTheWeek'
是 not in
当前的item(iid)
tags
。
if not 'BadgeOfTheWeek' in self.tree.item(iid)['tags']:
要从此tags
中删除所有item(iid)
,请将tags=
设置为空的list
或set
< / p>
self.tree.item(iid, tags=[])
Treeview
items
之后:item:{'text': 'Text_1', 'values': '', 'tags': '', 'image': '', 'open': 0} item:{'text': 'Text_2', 'values': '', 'tags': ['BadgeOfTheWeek', 'ALL'], 'image': '', 'open': 0} item:{'text': 'Text_3', 'values': '', 'tags': '', 'image': '', 'open': 0}
使用Python测试:3.5-TkVersion:8.6