如何使用“窗口”命令中的-exists标志?

时间:2019-07-15 09:38:33

标签: mel

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在做什么?我做错了什么以及如何检测我的窗户是否打开?

1 个答案:

答案 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";
   }
}

或者,您应该能够创建一个全局变量,以便它也可以在过程中访问。

尽管您的用例有点奇怪。如果窗口存在,您只能单击按钮!