保存数据并同时关闭Tkinter窗口

时间:2017-12-05 23:00:06

标签: python user-interface tkinter

所以我试图从用户那里获取数据,然后我想关闭gui窗口,并在点击“Enter”后立即将数据保存到我的代码的变量中。但窗户就在那里。如何保存数据,gui窗口同时关闭?

#pop up window
def show_entry_fields():
   global ModelNumber,PowerOutput,SerialNumber

   ModelNumber=e1.get()
   PowerOutput=e2.get()
   SerialNumber=e3.get()

master = Tk()
master.title("Model Information")

master.geometry("500x300")

master.iconbitmap("square.ico")

Label(master, text="Model Information").grid(row=0,column=1)
Label(master, text="Model Number ").grid(row=2)
Label(master, text="Power Output (w)").grid(row=3)
Label(master,text="Serial Number").grid(row=4)


e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)


e1.grid(row=2, column=1)
e2.grid(row=3, column=1)
e3.grid(row=4, column=1)


Button(master, text='Enter', command=show_entry_fields).grid(row=6, 
column=1, sticky=W, pady=4)




mainloop()
master.withdraw()

2 个答案:

答案 0 :(得分:3)

我不太明白这个问题。看起来您需要做的就是创建一个可以执行这两个操作的函数。

def save_and_quit()
    show_entry_fields()
    master.quit()

...
button = Button(master, text='Enter', command=save_and_quit)
button.grid(row=6, column=1, sticky=W, pady=4)

答案 1 :(得分:-3)

这就是我最终要做的事情。 它执行show_entry_fields函数内部的操作(将数据保存为全局变量),并在按下"输入"

后立即获取GUI窗口
   Button(master, text='Enter',  command=lambda: [f() for f in [show_entry_fields, master.quit]]).grid(row=6, column=1, sticky=W, pady=4)