是否可以控制列表框小部件的更新频率?现在,我经常进行大量插入和删除操作,并且列表框的刷新效果不是很好。也许有一种方法可以替代列表框的某些绘制功能来解决此问题?
答案 0 :(得分:1)
我无法找到一种方法来禁用列表框的可视更新,因此我不得不解决。如果有人知道您是否可以禁用列表框的可视更新,请告诉我。
我的解决方法将涉及一个列表和2个功能。
我的第一个功能将获取要添加到列表框中的数据,而不是将其添加到列表中。此函数只是简单地模拟了新值的添加速度,该值比我们想要更新的值快得多,以使方法具有更好的外观。您可以将此代码修改为适合自己的代码,以查看其如何与插入代码一起使用。
我的第二个函数将每秒运行一次,并获取该列表的所有新值,然后按索引将它们添加到列表框中。
这是一个简单的示例,但对您来说应该是一个很好的起点。
import tkinter as tk
root = tk.Tk()
add_tracker = 1
new_lb_items = []
lb = tk.Listbox(root)
lb.pack()
def add_to_listbox():
global add_tracker, new_lb_items, root
new_lb_items.append([add_tracker, "Number {}".format(add_tracker)])
add_tracker += 1
root.after(250, add_to_listbox)
def update_listbox_display():
global lb, new_lb_items, root
for item in new_lb_items:
lb.insert(item[0], item[1])
new_lb_items = [] # resets the list so only new values are added next time.
root.after(1000, update_listbox_display)
add_to_listbox()
update_listbox_display()
root.mainloop()