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