让一个函数返回Entry.get()

时间:2018-06-10 14:35:11

标签: python python-3.x tkinter return tkinter-entry

正如你可以在标题中看到我想要创建一个函数(!),让Toplevel弹出一个Entry和一个确认以及一个关闭按钮。当按下关闭按钮''应该返回但是如果按下确认按钮,则应该获得转发文本。

我的想法:

def func(root):
    returnvar=''
    def setreturn():
        global returnvar
        returnvar=root.toplevel.get()
        root.toplevel.destroy()
    root.toplevel=Toplevel(root)
    root.toplevel.geometry('+%s+%s' % (root.winfo_pointerx(),root.winfo_pointery()))
    root.toplevel.overrideredirect(True)
    root.toplevel.entry=Entry(root.toplevel)
    root.toplevel.entry.pack(side=TOP)
    root.toplevel.confirm=Button(root.toplevel,text='Confirm',command=setreturn)
    root.toplevel.confirm.pack(side=LEFT)
    root.toplevel.cancel=Button(root.toplevel,text'Cancel',command=root.toplevel.destroy)
    root.toplevel.cancel.pack(side=RIGHT)
    while True:
        try: root.toplevel.winfo_exists()
        except: break
    return returnvar

但是有一个更好的方式,而不是那个丑陋的循环......

0 个答案:

没有答案