【问题标题】:Returning tkinter values返回 tkinter 值
【发布时间】:2017-10-03 18:36:49
【问题描述】:

我在返回输入到我创建的入口点的值时遇到了一点问题,我不确定为什么。

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 的非常新手,因此感谢您提供任何建议或帮助。

【问题讨论】:

标签: python tkinter


【解决方案1】:

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

self.name = ttk.Entry(self.master)
self.name.grid(row=2, column=1)

并这样称呼它:

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

【讨论】:

  • 这行不通。您需要在单独的行中声明网格。
  • 谢谢 Mike,我在你发帖的同时看到了 - 已更正。
  • 想你最终会注意到它。我的评论只是以防万一。 :)
猜你喜欢
  • 2013-10-17
  • 2014-09-06
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 2017-08-20
  • 2012-08-07
相关资源
最近更新 更多