2015-08-21 47 views
1

我使用以下函数从Tkinter的菜单中打开输入对话框。在子框架中管理命令Tkinter(Python)

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() 

我需要在用户按下确定时关闭对话框。我怎样才能做到这一点?

回答

0

如果您需要的功能做多件事情,只是让而是采用了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() 
+0

更新....! @ TigerhawkT3 – dsgdfg

+0

不知道为什么这是downvoted。有人会关心解释它有什么问题吗? – TigerhawkT3

+0

朋友, 因为我不在乎打分。 – dsgdfg