【发布时间】:2018-05-10 10:00:50
【问题描述】:
我有一个 tkinter TreeView 并使用标签来标记多个选定的项目,如下图黄色所示。不幸的是,无论标签如何,最后点击的项目都将始终显示为蓝色。如何防止 TreeView 为最后点击的项目着色?
这是我用来选择项目的代码sn-p:
def on_click(self, event):
"""Set tag for selected datasets."""
# Remove 'plotted' tag if existent
if 'plotted' in self.tree.item(self.tree.selection())['tags']:
# FIXME: Only remove tag 'plotted'
self.tree.item(self.tree.selection(), tags=())
# Select only items that have no children
elif not self.tree.get_children(self.tree.selection()):
self.tree.item(self.tree.selection(), tags='plotted')
self.tree.column('#0', anchor=tk.E)
下面是一个示例。请注意,您无法判断 DNTP_iDL_... 是否应该是白色的(b/c 它是黄色的,我点击它以停用它):
【问题讨论】:
-
我会将选择突出显示颜色更改为黄色。
-
感谢您的回复。我认为这不会改变任何事情,因为最后一次选择可以有标签(“myselection”,即黄色)或者它不会有标签(即白色)。但是,系统将始终将最后一个标记为颜色(蓝色)并覆盖我的标签...
-
您能否解释一下,那将如何完成?我在文档中唯一找到的是使用标签,我正面临着上述挑战。
-
ttk::style map Treeview -background [list selected yellow]。我不是 python 人,所以如果 python/tkinter 用户之一可以转换它并创建一个答案,那就太好了。
标签: python tkinter treeview tk