app=Tk()
age=IntVar()
name=StringVar()
id=IntVar()
def add_user():
app1=Tk()
L1 = Message(app1,text="Name")
L1.pack( side = LEFT)
E1 = Entry(app1,textvariable=name)
E1.pack()
L2 = Message(app1,text="\nAge")
L2.pack( side = LEFT)
E2 = Spinbox(app1,from_=1,to_=100,textvariable=age)
E2.pack()
l3=Message(app1,text="\nId")
l3.pack()
e3=Spinbox(app1,from_=1,to_=100,textvariable=id)
e3.pack()
b5=Button(app1,text="submit",command=app1.destroy)
b5.pack()
app1.mainloop()
print age.get(),name.get(),id.get()
return
b1=Button(app,command=add_user,relief=RIDGE,text="add patient details")
b1.pack(side=BOTTOM)
app.mainloop()
print语句不打印正确的值,它总是打印默认值。我不明白我在哪里犯了错误
答案 0 :(得分:0)
您无法获取值的原因是,mainloop
退出后,小部件已被销毁。
您的代码中的更大问题是您正在创建两个Tk
实例。 Tkinter的设计并非如此。一个正确的Tkinter程序只创建一个Tk
实例,并在该实例被销毁时退出。如果要创建多个窗口,则第二个和后续窗口必须是Toplevel的实例。
您可能会发现此问题的答案很有用:Correct way to implement a custom popup tkinter dialog box