entry.get() shell/idle 输出问题

entry.get() shell/idle output issue

好的,我正在尝试按照本网站的指南使用 tkinter 学习一些 GUI:https://realpython.com/python-gui-tkinter/#building-your-first-python-gui-application-with-tkinter 取决于我如何 运行 使用 IDLE verse shell.

的代码

Idle 中发生的事情是在条目中实际键入任何内容之前很久就调用了名称。这就是输出为 "" 的原因。在 shell 中,我可以在条目“john doe”中输入一些内容,当我到达 'name' 时,它可以输出一些内容。


import tkinter as tk

window = tk.Tk()
label = tk.Label(text = "Name")
entry = tk.Entry()

label.pack()
entry.pack()

name = entry.get()
name

通常您会创建一个按钮来启动 .get 并启动 window 的主循环,如下所示:

import tkinter as tk

def print_entry(widget):
    name = widget.get()
    print(name)

window = tk.Tk()
label = tk.Label(text = "Name")
entry = tk.Entry()
button = tk.Button(text = "Get Entry",
                   command = lambda e = entry: print_entry(e))

label.pack()
entry.pack()
button.pack()

window.mainloop()