首页 > 解决方案 > tkinter 树视图中的高亮行

问题描述

我有一个从组合框中的数据加载其行的树视图,之后,我不会突出显示树视图中包含组合框中所选值的行。这是我的意思的简单代码:

selected_symbol = self.combo.get()
    children = self.tree.get_children()
    for item in children:
        data = self.tree.item(item)
        if selected_symbol == self.tree.item(item, 'text'):
            self.tree.tag_configure('MRO', background="yellow")


def build_tree():
    tree.heading('#0', text='colume 0')
    tree.heading('#1', text='colume 1')
    tree.heading('#2', text='colume 2')
    tree.heading('#3', text='colume 3')

    tree.column('#0')
    tree.column('#1')
    tree.column('#2')
    tree.grid(row=2, columnspan=4, sticky='nsew')
    build_tree_row()


def build_tree_row():
    for data in combo["values"]:
        tree.insert('', 'end', text=data,
                    values="disable", tag=data))


def manege_symbol_select(event):
    print(combo.get())
    highlight_selected_row()


window = tk.Tk()
window.geometry("{0}x{1}+0+0".format(int(window.winfo_screenwidth() / 2), int(window.winfo_screenheight() / 2)))
tree = Treeview(window, columns=("status", 'symbol', 'inventory'))
combo = Combobox(window, values=['row1', 'row2', 'row2'])
combo.current(0)
combo.bind("<<ComboboxSelected>>", manege_symbol_select)
combo.grid(row=3, column=0, sticky='s')
build_tree()
window.mainloop()

在函数 manege_symbol_select 中有一个对 highlite_selected_row 的函数调用,这是我不会实现的函数

编辑添加了 highlight_selected_row 的实现,尝试使用标签和标签配置,但 bg 不起作用

标签: python-3.xtkinter

解决方案


推荐阅读