Как выполнять коды во время mainloop Tkinter для целей отладки - PullRequest
0 голосов
/ 10 января 2019

Допустим, у меня есть этот простой код tkinter:

import tkinter as tk

root = tk.Tk()
root.geometry('200x50')
label = tk.Label(root, text='Dummy text')
label.pack()
root.mainloop()

После запуска я хочу вручную изменить метку на , выполнив (exec / eval) этой строки: label.configure(text='Manually changed the text!') (или какая-либо другая команда) для целей отладки.

Однако во время mainloop() я не могу выполнить какой-либо код в оболочке Python. Как я могу выполнить код, не прерывая действия mainloop() и , при которых действие кода немедленно появляется в окне Tkinter?

1 Ответ

0 голосов
/ 10 января 2019

Что acw1668 предлагает в коде:

import tkinter as tk

root = tk.Tk()
root.geometry('200x50')
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, command=lambda:exec(entry.get()),text='exec entry')
button.pack()
label = tk.Label(root, text='Dummy text')
label.pack()
root.mainloop()
...