ウィンドウが閉じられたときに破棄されるウィンドウ オブジェクトにリスナーをアタッチしようとしています。
OnClose
ただし、window オブジェクトには、X をクリックして閉じると呼び出される type メソッドがありません(pymel.core.uitypes.Window
理由が知りたい場合は、Autodesk Maya のものです)。
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
。これを回避するにはどうすればよいですか?