我想创建一个弹出窗口,其中的按钮在鼠标离开窗口时关闭(它是程序的子菜单)
为了做到这一点,我有一个函数,如果弹出窗口应该被打开调用。它包含以下代码:master = Tk()
fpy.ui.menu.submenu(master=master,[...more parameters...])
mainloop()
以及一个方法(fpy.ui.menu.submenu(…))来创建其他所有内容。 此功能应尽可能保持清洁。它是我为未来项目构建的API的一部分
def submenu(master,[...more parameters...]):
master.overrideredirect(True)
a_frame = Frame(master, bg="grey")
#[codeblock to generate buttons]
a_frame.bind("<Leave>", destroy)
a_frame.pack()
a_frame.bind("<Leave>", destroy)
当鼠标离开框架时调用函数'function'。现在我的问题开始了。“destroy”函数应该销毁我的根目录(在本例中称为master)
def destroy():
#how can I get the master-object?
master.destroy()
这将导致错误!如何通过此方法到达要销毁的对象
选项1:将其作为参数传递
可以使用
lambda
语句将其传递给destroy()
函数:然后修改销毁函数的签名:
选项2:直接调用master上的destroy方法
与前面的
lambda
语句相同,只是现在我们直接调用该方法,而不是在另一个函数中处理它当然,如果您想在
destroy()
函数中执行其他操作,这不是一个选项相关问题 更多 >
编程相关推荐