maya手册未描述如何在窗口命令中使用-exists标志。我尝试了多种使用方式,但并没有让步。
我已经摆弄和搜索了2天,没有去任何地方。我只是想检测我的一个窗口是否打开。
这是到目前为止我得到的测试代码:
string $something = `window -title "name of the window" -widthHeight 200 150`;
columnLayout -adjustableColumn false;
button -label "detect this window" -command "dothis_1";
showWindow $something;
proc dothis_1()
{
if (`window -ex $something` == true)
{
print "window detected!\n";
}
else
{
print "window detection failed!\n";
}
}
//--------
所以...我以为我在某处做错了什么,或者我只是误解了-exists在做什么?我做错了什么以及如何检测我的窗户是否打开?
答案 0 :(得分:0)
您的过程有一个范围可变的问题,因为它是在其外部定义的,所以它不知道$something
是什么。
您可以使过程接受要检查的窗口名称的参数,创建窗口,然后将其名称传递给按钮的命令:
string $something = `window -title "name of the window" -widthHeight 200 150`;
columnLayout -adjustableColumn false;
button -label "detect this window" -command ("dothis_1 " + $something); // Pass window name to proc.
showWindow $something;
proc dothis_1(string $win) {
if (`window -ex $win` == true) {
print "window detected!\n";
} else {
print "window detection failed!\n";
}
}
或者,您应该能够创建一个全局变量,以便它也可以在过程中访问。
尽管您的用例有点奇怪。如果窗口存在,您只能单击按钮!