Python treeview中的行选择

Python treeview中的行选择,python,tkinter,treeview,Python,Tkinter,Treeview,每当该行更新以下代码时,请选择所有该行 child_id =treeview.get_children() treeview.selection_set(child_id) 我不能只使用控件选择特定的行,而每次只有选定的行被再次选择吗 示例代码: from tkinter import ttk import tkinter import threading def main(): root = tkinter.Tk() ccols = ('num1','num2')

每当该行更新以下代码时,请选择所有该行

child_id =treeview.get_children()
treeview.selection_set(child_id)
我不能只使用控件选择特定的行,而每次只有选定的行被再次选择吗

示例代码:

from tkinter import ttk
import tkinter
import threading

def main():
    root = tkinter.Tk()
    
    ccols = ('num1','num2')
    treeview = ttk.Treeview(root, columns=ccols)
    for col in ccols:
        treeview.heading(col, text=col)
    treeview.grid(row=8, column=0)
    
    def sample():
       for i in range(50):
           treeview.delete(*treeview.get_children()) 
           a=(treeview.insert("","end",values=(i,0)))
           a=(treeview.insert("","end",values=(i,0)))
           a=(treeview.insert("","end",values=(i,0)))
           
           child_id =treeview.get_children()
           treeview.selection_set(child_id)
               
       threading.Timer(4.0, sample).start()

    sample()
    root.mainloop()


if __name__ == '__main__':
    main()

您可以保存所选行的当前索引。然后在更新treeview后,通过保存的索引获取行ID,并使用行ID选择行:

def sample():
#保存所选行的索引
index=[treeview.selection()中id的treeview.index(id)]
#更新树视图
对于范围(50)内的i:
treeview.delete(*treeview.get_children())
插入(“,”结束“,值=(i,0))
插入(“,”结束“,值=(i,0))
插入(“,”结束“,值=(i,0))
#使用保存的索引选择行
对于索引中的idx:
child\u id=treeview.get\u children()[idx]
树状视图。选择添加(子id)
threading.Timer(4.0,示例).start()

非常感谢@acw1668