我试图将一个侦听器附加到窗口关闭时销毁的窗口对象。包装的圆形参数要求
但是,该窗口对象没有OnClose
类型的方法,该方法通过单击X来关闭(如果您好奇,为Autodesk Maya的pymel.core.uitypes.Window
)。
add_listener
创建一个存在于活动会话中的侦听器。 attach_listener
我正在创建让窗口关闭时侦听器自行删除,并且需要连接到一个窗口。
我的解决方案如下:
def attach_listener(window, event_name, function):
def wrapper(*args, **kwargs):
if window.exists():
return function(*args, **kwargs)
else:
remove_listener(id_number)
id_number = add_listener(event_name, wrapper)
这是因为id_number
是直到函数声明之后定义显然是行不通的,但是,我不能在功能传递给add_listener
不首先确定它。 id_number
不能传递给add_listener
。我该怎么做才能解决这个问题?
不幸的是,玛雅运行在Python 2.6,所以'nonlocal'不存在。 – TorelTwiddler 2012-04-24 23:05:45