我正在使用 Tkinter 维护一个用 Python 编写的图形解析应用程序。它可以选择在可滚动的电子表格中显示其结果,这是我使用 Canvas 小部件创建的。但是,它似乎存在一些可扩展性问题。当主画布太大时,试图破坏显示结果的窗口会导致程序停止响应,需要被杀死。当显示的数据较少时,我可以正常销毁它。这是 Tkinter/大型 Canvi 的已知问题吗?我能做些什么来防止这些冻结吗?
#Function being called to destroy window
def justexit():
savepopup.destroy() #Destroy the popup asking to save (that called this function)
deleteall() #Destroy canvi and their contents
popup.destroy() #Destroy the window containing all the canvi
def deleteall():
for i, itemset in enumerate(items): #Items stores lists containing every item added to the canvi
for item in itemset:
canvi[i].delete(item)
canvi[i].destroy()
我的估计有点偏离。确实有多达数万个项目在发挥作用,但我不认为减速会如此明显。