一、窗口
1.写法
基础指令 (加方括号表示可以没有)
window [后缀指令] [窗口名];
[布局声明;]
[基础元素;]
showWindow [窗口名];
2.最简单的窗口创建
window;
showWindow;
这里maya会给window起一个默认的名字。但是最好是自己取一个窗口名,不然回头调用起来也挺麻烦的
3.多次打开某个窗口
按照我们平时使用maya的经验,当某一个窗口已经打开了,再次点开一遍,并不会报错,而且这个窗口还会从新移动到比较显眼的位置,想要达到这个效果,需要写一个判断语句。
如果窗口存在,则先删除窗口,然后再从新创建一个
window zyr;
if(`window -ex zyr`) //-ex 查看是否存在zyr
{ //mel语句里面很多时候会加`` 它的意思是取mel函数的返回值
deleteUI zyr;
}
showWindow zyr;
4.后缀指令
就是指定一下window的各个参数值,比如说标题名称,长宽高,背景颜色等等
具体的参数看window帮助文档
string $window = `window -title "zyr"
-iconName "美女" //the windows icon tittle
-widthHeight 200 55`; //取window语句的返回值到$window中showWindow $window;
也可以这样写
window
-title "zyr"
-iconName "美女" //the windows icon tittle
-widthHeight 200 55zyr;
showWindow zyr;
窗口建好之后也可以进行一些修改
window -edit -widthHeight 900 777 zyr;
5.布局声明
就是安排窗口内部的组件该怎么放置,比如说
columnLayout -adjustableColumn true; // 竖直排列 每个元素都拉伸到窗口一样的宽度
详见官方文档
6.基础元素
窗口内的基本元素有:按钮button、滑条int/floatSliderGrp、文本框int/floatField、文字text、分隔符separator等等
具体的内容在官方文档里面搜索即可
基础元素这一部分的内容就是写在“布局声明”和showWindow之间的,比如声明了两个按钮
button -label "Do Nothing";
button -label "Close";末尾我会放一下完整的代码
但是现在按钮点了并没有什么用,要给每一个按钮添加一个脚本,也就是click之后自动调用某个脚本(一般是调用一个函数,但是如果脚本很简单也可以直接写),以实现点击按钮有相应效果。
比如给刚才的close按钮添加关闭窗口的脚本
button -label "Close" -command ("deleteUI -window " + $window) ;
//因为是写在双引号中的,所以可以认为script是一大串的字符
7.完整代码
string $window = `window -title "zyr"
-iconName "美女"
-widthHeight 800 400`;
columnLayout -adjustableColumn true;
button -label "Do Nothing";
button -label "Close" -command ("deleteUI -window " + $window);
setParent ..;
showWindow $window;
二、快速创建物体插件实例
1.插件作用设计
快速的创建小球,可以在创建之前调节小球的参数
string $window = `window -title "createpoly"
-widthHeight 800 400`;
columnLayout -adjustableColumn true;
text -label "\n 快速创建物体 \n" ;
floatSliderGrp -label "半径: " -field true -min 0.0 -max 10.0 sphereslider;
button -label "polySphere" -command "sphereradius";
button -label "Close" -command ("deleteUI -window " + $window);
setParent ..;
showWindow $window;global proc sphereradius()
{
//get slider's float number
float $spradius=`floatSliderGrp -q -v sphereslider`;
//create sphere
polySphere -radius $spradius;
}
//另一种排布的示例
window;
rowLayout -numberOfColumns 4
-columnWidth4 80 100 80 100
-adjustableColumn 1
-adjustableColumn 3
-columnAlign 1 "right"
-columnAlign 3 "right"
-columnAttach 1 "both" 0
-columnAttach 2 "both" 0
-columnAttach 3 "both" 0
-columnAttach 4 "both" 0;
text -label "width:";
floatField ;
text -label "height:";
floatField ;showWindow;
三、窗口菜单和主界面菜单
窗口菜单:menu
主界面菜单:$gMainWindow
这两种菜单都是可以人为添加的
1.窗口菜单
窗口菜单menu是在布局声明之前定义的,另外在后缀指令中必须有"-menuBar true"
menu -label "File" -tearOff true;
menuItem -label "New";
menuItem -label "Open";
menuItem -label "Save";
menuItem -divider true;
menuItem -label "Quit";
menu -label "Help" -helpMenu true;
menuItem -label "About Application...";
2.主界面菜单