Python-为什么Tkinter Entry的get函数什么都不返回?

发布于 2021-02-02 23:14:58

我正在尝试使用一个Entry字段来获取手动输入,然后使用该数据。

我发现的所有资料都声称我应该使用该get()函数,但是我还没有找到一个简单的可运行的迷你示例,因此无法使用它。

我希望有人可以给我打电话,告诉我我做错了什么。这是一个迷你文件:

from tkinter import *


master = Tk()

Label(master, text="Input: ").grid(row=0, sticky=W)

entry = Entry(master)
entry.grid(row=0, column=1)

content = entry.get()
print(content)  # does not work

mainloop()

这给了我一个Entry我可以输入的字段,但是一旦输入数据我就什么也不能做。

我怀疑我的代码不起作用,因为最初它entry是空的。但是,一旦输入了输入数据,我该如何访问呢?

关注者
0
被浏览
154
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    看起来你可能对何时运行命令感到困惑。在你的示例中,你是get在GUI有机会在屏幕上显示之前调用该方法的(在调用之后发生)mainloop

    尝试添加一个调用该get方法的按钮。如果你将应用程序编写为类,这会容易得多。例如:

    import tkinter as tk
    
    class SampleApp(tk.Tk):
        def __init__(self):
            tk.Tk.__init__(self)
            self.entry = tk.Entry(self)
            self.button = tk.Button(self, text="Get", command=self.on_button)
            self.button.pack()
            self.entry.pack()
    
        def on_button(self):
            print(self.entry.get())
    
    app = SampleApp()
    app.mainloop()
    

    运行程序,输入条目小部件,然后单击按钮。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看