2015年8月17日月曜日

2015年8月3日月曜日

MayaLT2016:Mel:UIウインドウの取得

lsUI -type "window";
でUIウインドウを取得できる。
が、一見自分で作ったウインドウしか無いように見えても、他のウインドウもリストアップするので注意。

あと、こういったウインドウがリストアップされるが、
MayaWindow
nexFloatWindow
scriptEditorPanel1Window
2つ目の"nexFloatWindow"を取得しようとすると、エラーで止まってしまう。具体的には、forループで回して自作ウインドウを探している途中とかで、名前を取得して判定しようとするだけで止まる。
ので、
if (string($win) != "nexFloatWindow")
とかで触らないように回避するしかない。

あと、自作ウインドウを作成する前に、同じスクリプトで以前に作成したウインドウを消しておくとよいみたい。
if(`window -q -exists $WinName`) deleteUI $WinName;

但し、消した後に、
lsUI -type "button";
とかでボタンを取得しようとすると、どうやら消したウインドウ内に配置したボタンが消えてないっぽくて、どうもうまくゆかない。
if (`button -q -parent $btn` == "SwitchAnimRange|colLay")
とかで親レイアウトから判別するしかないのかな。

んー、このやり方イマイチ。