如何在MEL脚本中动态更新menuItem

时间:2016-07-18 11:26:56

标签: loops maya mel

我正在尝试根据在其他选项框中选择的选项更新menuItem。我实际上要做的是在一个选项框中获取文件夹列表(例如:项目文件夹名称),当我在选项框中选择特定文件夹(项目)时,该文件夹中的文件夹列在另一个选项框中(示例:部门文件夹名称,如动画,建模等。)

global proc GetProject_Root() {

    string $projectname ;
    string $dataArray[] ;
    string $tempArray[] ;
    string $project ;
    $i ;
    string $disp ;
    string $m1 ;
    string $m2 ;

    $serverSaveDir = ( `internalVar -userPrefDir` + "ProjectRoot.txt" ) ;
    $serverId = `fopen $serverSaveDir "r"` ;
    int $num = 0 ;

    string $serverLine = `fgetword $serverId` ;

    while ( size( $serverLine ) > 0 ) {

        $dataArray[ size( $dataArray ) ] = $serverLine ;  
        print ( $serverLine ) ;

        if ( $num % 2 == 0 ) {

            $tempArray[size($tempArray)] = $serverLine ;
        }

        // get the next line
        $serverLine = `fgetword  $serverId` ;
        $num++ ;
    }

    fclose $serverId ;

    string $window = `window` ;
    columnLayout ;     
    optionMenu -label "project" -cc "print #1**strong text**" proj ; 

        for ( $projectname in $tempArray ) {

            // print ( $projectname + "\n" ) ;

            $m1 = `menuItem -label $projectname` ;              
        }

    optionMenu -label "Episode" -cc "print #1" epi ;

        for ($projectname in $tempArray) {

            // print ( $projectname + "\n" ) ;

            $m2 = `menuItem -label $projectname` ;
        }                     

    showWindow $window ;
}

1 个答案:

答案 0 :(得分:0)

当第一个控件发生更改时,您需要重新创建该控件。因此,当他们选择项目文件夹时,删除并重新创建另一个optionMenu控件。看起来没有一个可以编辑物品的地方