Python 返回tkinter值

Python 返回tkinter值,python,tkinter,Python,Tkinter,我在返回输入到我创建的入口点中的值时遇到了一些问题,我不知道为什么 class DbGui: def __init__(self, master): self.master = master self.label = ttk.Label(master, text="Tkinter DB File-r") self.label.grid(row=0, column=0, columnspan=2) ttk.Button(mas

我在返回输入到我创建的入口点中的值时遇到了一些问题,我不知道为什么

class DbGui:
    def __init__(self, master):
        self.master = master
        self.label = ttk.Label(master, text="Tkinter DB File-r")
        self.label.grid(row=0, column=0, columnspan=2)
        ttk.Button(master, text="Connect", command=self.connect).grid(row=1, column=0)
        ttk.Button(master, text="Disconnect", command=self.disconnect).grid(row=1, column=1)
        ttk.Button(master, text="Submit", command=self.tk_submit).grid(row=1, column=2)
        ttk.Button(master, text="Exit", command=self.tk_exit).grid(row=6, column=3)

    def show_inputs(self):
        # Name
        ttk.Label(self.master, text="Name").grid(row=2, column=0)
        name = ttk.Entry(self.master).grid(row=2, column=1)

        # Date
        ttk.Label(self.master, text="Date").grid(row=3, column=0)
        date = ttk.Entry(self.master).grid(row=3, column=1)
        # Value
        ttk.Label(self.master, text="Value").grid(row=4, column=0)
        value = ttk.Entry(self.master).grid(row=4, column=1)
        return name, date, value

    def tk_submit(self):
        print(name.get()) # This is where I think the problem is.

def main():
    root = Tk()
    app = DbGui(root)
    app.show_inputs()
    root.mainloop()


if __name__ == '__main__':
    main()

一旦用户输入这些值来填充变量或列表或其他内容,我如何获得这些值。我是tkinter的新手,因此非常感谢您的建议或帮助。

您必须将变量
名称
初始化为类的属性(前缀为
self.
),并在
self.name
上单独一行调用grid(
grid
返回
None
)-谢谢@MikeSMT):

并称之为:

def tk_submit(self):
    print(self.name.get())

可能的副本。简短回答:创建你的小部件并在两行上分别调用
grid
。这不起作用。你需要在单独的一行中声明网格。谢谢迈克,我在你发布-更正的同时看到了它。我想你最终会注意到它的。我的评论只是以防万一。:)
def tk_submit(self):
    print(self.name.get())