我試圖將一個偵聽器附加到窗口關閉時銷燬的窗口對象。包裝的圓形參數要求
但是,該窗口對象沒有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