修改python tkinter treeview中所选行的标签

问题描述 投票:0回答:3

我添加了以下代码(取自this post),但是我没有得到所需的解决方案。

def change_colour():
    trv.set(trv.selection()[0],0,tags='changed_tag')        #this causes problem
    trv.tag_configure("changed_tag",foreground="blue",background="yellow")

执行时我收到此错误(从函数的第一行开始):

TypeError: set() got an unexpected keyword argument 'tags'

我的目标是更改所选项目的标签(在树视图中),因此它的颜色将会改变。

python python-3.x tkinter
3个回答
2
投票

我自己找到了解决方案,对于有同样问题的人:

    def high_target():
        selected_item = trv.selection()[0]
        trv.item(selected_item, tags='changed_tag')
        trv.tag_configure("changed_tag",foreground="blue",background="yellow")

0
投票

我认为你的代码应该是这样的(虽然没有测试):

def change_colour(iid):
    trv.item(iid, tags="changed_tag")
    trv.tag_configure("changed_tag", foreground="blue", background="yellow")

以及使用

trv.insert
创建树视图项的位置,将
trv.insert
返回的值存储在变量中,并将其作为参数传递给
change_colour
。示例:

iid = trv.insert("", "end", values=("a", "b", "c"))
change_colour(iid)

0
投票
def change-tags():
    trv.tag-configer('odd',
    background='color1',
    foreground='color2')
   
    trv.tag-configer('even',
    background='color1',
    foreground='color2')
    rows:list=[]
    for row in trv.get_children():   
    rows.append(trv.get_children())
    for i in range(len(rows)):
        if i%2==0:
           trv.item(i,tags=('even',))
           trv.item(i,tags=('odd',))
© www.soinside.com 2019 - 2024. All rights reserved.