在子帧Tkinter(Python)中管理命令
我正在使用以下功能从Tkinter中的菜单打开输入对话框在子帧Tkinter(Python)中管理命令,python,tkinter,command,parent-child,Python,Tkinter,Command,Parent Child,我正在使用以下功能从Tkinter中的菜单打开输入对话框 def show_entry_fields(e): global pwd pwd = e.get() def showPwdInputBox(): # display an input box for the password c = Toplevel(root) c.title("Enter your password") c.geometry('200x160+230+130')
def show_entry_fields(e):
global pwd
pwd = e.get()
def showPwdInputBox():
# display an input box for the password
c = Toplevel(root)
c.title("Enter your password")
c.geometry('200x160+230+130')
Label(c, text="Password").pack() #(row=0)
e1 = Entry(c, show="*")
e1.pack()
Button(c, text='OK', command= lambda: show_entry_fields(e1)).pack()
Button(c, text='Close', command=c.destroy).pack()
当用户按下OK时,我需要关闭对话框。我怎样才能做到这一点呢?如果您需要该函数做不止一件事,只需制作一个普通函数,而不是使用
lambda
:
def ok_command():
show_entry_fields(e1)
c.destroy()
Button(c, text='OK', command=ok_command).pack()
但是,我建议保存对每个小部件的单独引用,不要链接几何体管理,因为您不能引用已经链接了几何体管理方法的小部件。即使您不打算在这个特定的时间引用这些特定的小部件,这也是一个很好的实践
ok_button = Button(c, text='OK', command=ok_command)
ok_button.pack()
如果您需要函数执行多项操作,只需制作一个普通函数,而不是使用
lambda
:
def ok_command():
show_entry_fields(e1)
c.destroy()
Button(c, text='OK', command=ok_command).pack()
但是,我建议保存对每个小部件的单独引用,不要链接几何体管理,因为您不能引用已经链接了几何体管理方法的小部件。即使您不打算在这个特定的时间引用这些特定的小部件,这也是一个很好的实践
ok_button = Button(c, text='OK', command=ok_command)
ok_button.pack()
不知道为什么这会被否决。有人愿意解释一下问题出在哪里吗?朋友,因为我不在乎得分。@SDilmac:你是说你对这个问题投了否决票,而有人对你的问题投了否决票吗?@BryanOakley没有,先生,我没有时间去恨(重要的是发展和贡献)。我对得分一无所知。从这个网站,所以我利用了(我仍然在利用)。他是我的朋友,我将永远如此。如果我的朋友不高兴,那就是为什么我很抱歉。我不知道为什么这会被否决。有人愿意解释一下问题出在哪里吗?朋友,因为我不在乎得分。@SDilmac:你是说你对这个问题投了否决票,而有人对你的问题投了否决票吗?@BryanOakley没有,先生,我没有时间去恨(重要的是发展和贡献)。我对得分一无所知。从这个网站,所以我利用了(我仍然在利用)。他是我的朋友,我将永远如此。如果我的朋友不高兴,那就是为什么我很抱歉。