MayaMel:UI—窗口简介_maya窗口mel_Karon_NeverAlone的博客-程序员宅基地

技术标签: 动画  mayamel  maya  

一、窗口

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 55

        zyr;    

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.主界面菜单

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/karonneveralone/article/details/121611812

智能推荐

详解 Flutter engine多线程、Dart isolate和异步_flutter 线程-程序员宅基地

随着Flutter的使用越来越广泛,相信很多人包括我自己对flutter的线程一直存一些疑问, dart为什么默认是单线程任务处理、在单线程下dart的异步是如何实现的、flutter线程有哪些、如何使用多线程处理耗时操作... 带着这些疑问去探索下flutter engine多线程、 dart isolate 和 异步 三者之前的关系。_flutter 线程

python3爬虫进阶js逆向学习(十二)_python3 爬虫逆向-程序员宅基地

目的目的:JS逆向的学习与交流目标:分析去哪儿m参数目标网址:https://m.flight.qunar.com/h5/flight/// 若有侵权,请联系作者删除,谢谢!思路分析一、内容概览二、请求参数分析#!/usr/bin/env python# -*- coding: utf-8 -*-# Author : jia666# Time : 2021/7/12 15:21import timeimport hashlibdef get__python3 爬虫逆向

HBase与MapReduce交互-程序员宅基地

目录​​​​​​​1.版本2.官方案例3.自定义案例14.自定义案例21.版本HBase:1.3.1Hadoop:3.1.32.官方案例1.查看 HBase 的 MapReduce 任务的执行需要的jar包2. 环境变量导入永久生效的方式:在 hadoop-env.sh 中配置,直接在最后一行加入exportHADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/module/hbase/lib/*3.运行官方..._hbase与mapreduce

【树莓派2】给树莓派更换软件源-程序员宅基地

上一节自学了怎样用windows笔记本远程连接树莓派,本文开始学习更换树莓派软件源,提高下载速度。执行终端命令:sudo apt-get updatesudo apt-get upgrade报错,很多软件不能更新,怎么办?一、修改树莓派的vi/vim编辑器树莓派自带的vi编辑器实在是,难用!!!nano又用不习惯!!!首先删除默认vi编辑器sudo apt-get remove vim-common然后重装vimsudo apt-get install vim为方便使用,还可

快速开发R包_@rdname-程序员宅基地

R包的开发需要安装devtools包。https://cran.r-project.org/web/packages/devtools/devtools.pdf1、devtools::create(path)在该path路径下创建一个开发R包必须要的一些文件(包括放最后生成的help文档的man文件夹,放主要代码的R文件夹,描述文件DESCRIPTION,命名空间文件 NAMESPACE,项目文件pkgname.Rproj)也可直接使用Rstudio(1) Rstudio.._@rdname

微信小程序简单的信息表格的提交到数据库(新手篇)(云端数据库)_微信小程序提交数据到数据库-程序员宅基地

微信小程序简单的信息表格的提交到数据库(新手专属)(云端数据库)大家好,我是小陈,一名大一的编码爱好者,,,,,刚刚结束了大一的学习生活,也总结出了一点编码的经验,希望与大家一起分享.我是学习物联网的,总感觉大一的课程枯燥无味,所以索性自学了一点微信小程序的开发,只是一点点,(注意:非大神),把自己的学习成果分享在博客中,与大家一起讨论学习,也欢迎大家指正批评.----------------------------------------------------------------------_微信小程序提交数据到数据库

随便推点

G711和h264的同步_g.711 h264 通过sdp ,同时解码-程序员宅基地

G.711的帧长为10ms,位速率为64kbps,也即是8kBps,即1s传输8000个字节,RTP打包时 ,对于音频包,每个包封装1000个字节,即0x03f4,所以1s内会发送8个这样的音频包,由于音频的始终频率为8000Hz,所以每两个音频包间的时间戳差为1000Hz;而视频包时钟频率为90000Hz,1秒钟25帧图像,所以每两帧的时间戳差为3600Hz._g.711 h264 通过sdp ,同时解码

Mongodb备份恢复(mongodump,mongorestore方式)_restoring to logdb.userincrement without dropping -程序员宅基地

一:备份1.1 备份所有数据库[root@ser6-52 mongodbbackup.bak]# mongodump -u superuser -p 123456 --authenticationDatabase admin -o /backup/mongodb/full_bak_201507021651.bakconnected to: 127.0.0.12015-07-02T16_restoring to logdb.userincrement without dropping . restored data will be in

ncurses-5.7交叉编译在执行tic时挂死_ncurses tic-程序员宅基地

今天在一台Centos5.4的主机上交叉编译某个MIPS64平台的ncurses-5.7的代码的时候,会在执行tic时挂死。 具体的打印信息如下: ............cd misc && make DESTDIR="/home/xxxx/libraries" installmake[4]: Entering directory `/home/xxxx/ncurses-5.7/misc'_ncurses tic

SpringMVC使用Jackson返回JSON时日期少一天的问题_jackson 1982 时间差一天-程序员宅基地

SpringMVC使用Jackson返回JSON时日期少一天的问题 text/html;charset=UTF_jackson 1982 时间差一天

unwallet的真实性与权威性解析_udunwallet-程序员宅基地

在2018年11月8日,全球新一代智能加密货币钱包UNWALLET隆重上线,相当于支付宝、微信,可理财所有币 ,月收益10%到30%!相当于支付宝的余额宝随进随出,提币变现,还有微信功能,建群聊天,发红包转币,抢红包币,功能十分强大!全球首个基于区块链项目管理的生态平台。基于UnWalletchain打造分布式智能合约的区块链项目集中管理应用体系,构建生态产业链。官方宣称,UNWALLET公..._udunwallet

__declspec 和 __attribute__-程序员宅基地

(1)__declspec__declspec关键字详细用法点击打开链接__declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于Microsoft的扩展。用法:__declspe