我有一个问题是返回输入到我创建的入口点的值,我不知道为什么。
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来说是新手,所以任何建议或帮助都会受到赞赏。
答案 0 :(得分:3)
您必须将变量name
初始化为类的属性(以self.
为前缀),并在self.name
上单独调用网格(grid
确实返回None
- 谢谢@MikeSMT):
self.name = ttk.Entry(self.master)
self.name.grid(row=2, column=1)
并将其称为:
def tk_submit(self):
print(self.name.get())