在多个文本框中输出文本而不是单个..tkinter python

Output text in multiple text-boxes rather than single..tkinter python

import tkinter as tk
win = tk.Tk()
win.title('New App')
win.geometry('800x800')


def passgen():
    num = str(inp.get())
# text field for output
    disp = tk.Text(master=win, height=4, width=80, )
    disp.pack()
    disp.insert(tk.END, num)


lab = tk.Label(text='First Label')
lab.pack()
inp = tk.Entry()
inp.pack()
btn = tk.Button(text='Submit', command=passgen)
btn.pack()


win.mainloop()

上面是我的简单 tkinter 代码,但是当我 运行 它时,我得到了多个框中的输出。我想要的只是每次使用提交按钮时,输出都应该在一个框中而不是多个框中。有什么办法吗?我用的是python 3. Screenshot

问题在于 passgen() 方法在创建新的 tk.Text() 对象时的工作方式。要解决此问题,您需要添加到同一个 Text 对象,这意味着在函数外部创建它,然后使用函数中的全局对象:

...

def passgen():
    global disp
    num = str(inp.get())
    disp.insert(tk.END, num)

disp = tk.Text(master=win, height=4, width=80, )
disp.pack()
...