#47 如何切换 ‘Hide UI Elements’ 和 ‘Show UI Elements’状态?

简略的说, 只要用这个MEL command 就好了:

setAllMainWindowComponentsVisible <true|false>;

但是, 这个不能用于来回切换. 而且也没办法查询到当前的状态, 或者上次运行完后是什么状态. 还有就是传递一个’true’ 参数并不意味着 “显示UI” ,而是”恢复这些UI的状态到他们被直接隐藏之前的状态”

你可以换用下面几种方法:

  1. 任选一个 UI elements ,用他的visibility状态来判定你是正在显示还是隐藏UI. 比如, 你可以用 Time Slider来判定:
    setAllMainWindowComponentsVisible( !isTimeSliderVisible() );
    

    或者用 Shelf来判断:

    setAllMainWindowComponentsVisible( !isShelfVisible() );
    
  2. 自己定义一个 optionVar 来存贮上次切换之后的状态, 用他的值来判断本次切换的状态:
    int $globalUIVisibilityFlag = true;
    
    if ( `optionVar -exists globalUIVisibilityFlag` )
      $globalUIVisibilityFlag = `optionVar -q globalUIVisibilityFlag`;
    
    $globalUIVisibilityFlag = !$globalUIVisibilityFlag;
    
    setAllMainWindowComponentsVisible $globalUIVisibilityFlag;
    optionVar -intValue globalUIVisibilityFlag $globalUIVisibilityFlag;
    

    但这种方法也不方便, 而且上面也讲了, setAll…() function 并不是在把 UI elements 显示或隐藏. 他只是把他们隐藏并且保存他们上一次的可见状态. 如果在你运行script之前,所有UI本身就已经是隐藏的了,那 setAll…() script 就会记住所有东西都是隐藏的了,下次他就没法让他们显示出来,除非你手动显示那些UI.

  3. 自己写一个切换的 script ,当要隐藏的时候强制隐藏UI,要显示的时候强制显示UI.

Related How-To’s

Wednesday, November 29, 2000

留下评论