为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Tkinter Entry的函数返回什么?

/ 猿问

为什么Tkinter Entry的函数返回什么?

牧羊人nacy 2019-09-13 15:10:14

为什么Tkinter Entry的函数返回什么?

我正在尝试使用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 workmainloop()

这给了我一个Entry我可以输入的字段,但是一旦输入数据,我就无法对数据做任何事情。

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


查看完整描述

3 回答

?
慕码人2483693

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

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

import tkinter as tkclass 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()

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



查看完整回答
反对 回复 2019-09-16
?
繁星点点滴滴

您也可以使用StringVar变量,即使它不是绝对必要的:

v = StringVar()e = Entry(master, textvariable=v)e.pack()v.set("a default value")s = v.get()

有关更多信息,请参阅effbot.org上的此页面


查看完整回答
反对 回复 2019-09-16
?
UYOU


一个没有类的简单示例:

from tkinter import *    master = Tk()# Create this method before you create the entrydef return_entry(en):
    """Gets and prints the content of the entry"""
    content = entry.get()
    print(content)  Label(master, text="Input: ").grid(row=0, sticky=W)entry = Entry(master)entry.grid(row=0, column=1)# Connect the entry with the return buttonentry.bind('<Return>', return_entry) mainloop()



查看完整回答
反对 回复 2019-09-16

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信