寻找一种方法来阻止这个基本程序中的内存泄漏

时间:2015-07-08 06:06:41

标签: python python-3.x memory-leaks tkinter

我是Python的新手。该程序在Tk()窗口内创建一个标签。单词" hi"无限期地写入标签。我怎样才能删除旧的hi,同时仍然无限期地写新的hi?这甚至是我如何阻止内存泄漏?这是代码:

from tkinter import *

def box(a):
    z=Label(root,text='%s'%(a))
    z.place(width=50,height=20)

def start(root):
    a="hi"
    box(a)
    root.after(100, start, root)

root = Tk()
start(root)
root.mainloop()

1 个答案:

答案 0 :(得分:3)

如何只替换文本而不是每次都创建Label对象。

from tkinter import *

def box(a):
    z['text'] = a

def start(root):
    box('hi')
    root.after(100, start, root)

root = Tk()
z = Label(root, text='')
z.place(width=50, height=20)
start(root)
root.mainloop()
from tkinter import *


def start(root, z):
    a = 'hi'
    z['text'] = a
    root.after(100, start, root, z)


root = Tk()
z = Label(root, text='')
z.place(width=50, height=20)

start(root, z)

root.mainloop()