gpt4 book ai didi

python - 为什么 delete 方法不为 Tkinter 中的小部件释放内存?

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:09 28 4
gpt4 key购买 nike

在 Tkinter 中,我有一大块代码可以更新和清除 ScrolledText 小部件。然而,我在测试期间注意到存在与此相关的内存泄漏,在缩小范围后,复制此行为的最简单方法是:

import tkinter
import tkinter.scrolledtext
def meme(box_text):
while True:
box_text.insert("end", "meme")
box_text.delete(1.0, "end")
window_main = tkinter.Tk()
box_text = tkinter.scrolledtext.ScrolledText(window_main)
button = tkinter.Button(window_main, command=lambda: meme(box_text))
box_text.pack()
button.pack()
window_main.mainloop()

谁能解释我做错了什么?我不明白也看不出这与内存有关的问题。如果我注释掉插入,只有删除,就没有内存问题,所以据我所知,循环本身不是罪魁祸首,只有插入。

最佳答案

我找到了罪魁祸首。默认情况下,对于文本小部件,“maxundo”设置为 0,因此 Tkinter 会记录插入其中的所有内容。将其设置为 1 解决了这个问题。编辑:undo=False 效果更好。

关于python - 为什么 delete 方法不为 Tkinter 中的小部件释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43174963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com