在多个文本框中输出文本而不是单个..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()
...
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()
...