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