Выводить текст в несколько текстовых полей, а не в один ... 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.Снимок экрана

1 ответ

Решение

Проблема в том, что 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()
...
Другие вопросы по тегам