Working with Qt maya2011
生活随笔
收集整理的這篇文章主要介紹了
Working with Qt maya2011
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
maya2011使用了Qt框架,10年來(lái)幾乎一成不變的maya界面,現(xiàn)今變成了黑糊糊的界面,雖然只是隨便的玩弄了一下,感覺比以前的界面好多了。
Ok,感嘆到此為止,進(jìn)入我們今天的話題"Working with Qt",主要介紹如何使用Qt的Designer來(lái)給maya制作UI,有了Designer不管你是程序員還是非程序員,都能輕松給maya制作UI。
先給出Qt的下載地址,Maya 2011 使用的是 Qt 4.5,版本4.5.X的X是無(wú)關(guān)緊要的,如果你只是用來(lái)制作UI我認(rèn)為版本應(yīng)該不重要,但如果你是想要寫基于Qt的maya插件,那版本就十分重要了。
Win
[url]ftp://ftp.qt.nokia.com/qt/source/qt-win-opensource-4.5.3-mingw.exe[/url]
Linux 請(qǐng)參考[url]http://download.autodesk.com/us/maya/2011help/files/Setting_up_your_build_environment_Linux_environments_32bit_and_64bit.htm[/url]
Mac
[url]ftp://ftp.qt.nokia.com/qt/source/qt-mac-cocoa-opensource-4.5.3.dmg[/url]
安裝好Qt后就可以使用Designer了,在開始制作UI前我簡(jiǎn)單的給你們說(shuō)一下maya是如何讀取.ui文件的。雖然maya2011使用了Qt框架,但據(jù)我所知maya不是像Qt那樣的讀取.ui文件,而是通過(guò)loadUI命令來(lái)讀取的,再通過(guò)MQtUtil類來(lái)進(jìn)行(已識(shí)別的)maya的腳本和Qt的插件(widgets)的連接來(lái)完成的,簡(jiǎn)單的說(shuō)就是通過(guò)loadUI命令讀取.ui文件,將讀取的內(nèi)容給MQtUtil進(jìn)行過(guò)濾,如果能識(shí)別就會(huì)轉(zhuǎn)化成對(duì)應(yīng)mel命令來(lái)實(shí)現(xiàn)UI。所以雖然你使用Designer制作的UI,實(shí)際用起來(lái)還是基于mel的UI??梢妋aya還是在力挺mel啊,都撐了10年了。
打開Designer,我們要開始制作UI了,選擇"Dialog without Buttons",點(diǎn)擊"Create"
[img]http://dl.iteye.com/upload/attachment/237430/8ca111df-b13a-3e05-a4ee-078e254c8fcc.png[/img]
給窗口一個(gè)獨(dú)一無(wú)二的名稱,如"QtDialog",就像你在用mel寫UI時(shí)一樣給窗口一個(gè)獨(dú)一無(wú)二的名稱是一個(gè)很安全的做法,這樣你以后就能用mel后python來(lái)對(duì)其進(jìn)行訪問(wèn)了,如果你像更改窗口的標(biāo)題可以在"windowTitle"那里更改
[img]http://dl.iteye.com/upload/attachment/237432/ab309d13-b766-39c0-ba44-042d2c86fdd4.png[/img]
加入我們需要的控件兩個(gè)"Label",一個(gè)"Combo Box"和一個(gè)"Line Edit",在Widget Box中找到后直接拖到窗口中就行
[img]http://dl.iteye.com/upload/attachment/237437/f680b080-6bb9-3b04-94bf-b913a216f062.png[/img][img]http://dl.iteye.com/upload/attachment/237440/14c203d3-b39b-35cc-a11f-b34acb60c1f9.png[/img]
雙擊"Label"就可以編輯它們的顯示內(nèi)容,因?yàn)槲覀儾恍枰獙?duì)其進(jìn)行訪問(wèn),所以不需要給它們一個(gè)獨(dú)一無(wú)二的名稱,你也可以編輯它們的字體等屬性,但"Combo Box"和"Line Edit"就需要了,如圖Object列是它們?cè)趍aya里的名稱,Class是控件的類型,我把"Combo Box"命名為"objTypeOM","OM"是optionMenu的縮寫,這樣命名是因?yàn)?#34;Combo Box"就是optionMenu,可以推論"Line Edit"就是textField,所以我命名為"objNameTF"
[img]http://dl.iteye.com/upload/attachment/237442/2eeaf617-89d9-334d-b6b1-cdb161998156.png[/img]
右鍵"Combo Box"來(lái)編輯它的項(xiàng)目
[img]http://dl.iteye.com/upload/attachment/237446/8c18a779-c3da-3404-9db7-423114085bc2.png[/img]
并加入"Sphere","Cube","Cylinder","Cone","Plane"
[img]http://dl.iteye.com/upload/attachment/238027/b731caff-66fd-3f6b-9eec-15b9018febb6.png[/img]
現(xiàn)在我們來(lái)添加兩個(gè)按鈕,也許你會(huì)問(wèn)為什么不在一開始就選擇一個(gè)有按鈕的UI來(lái)創(chuàng)建呢,原因很簡(jiǎn)單,Qt里默認(rèn)的帶按鈕的窗口都是使用QDialogButtonBox插件(widgets),這是maya不能識(shí)別的,因?yàn)閙el沒有按鈕組,只有按鈕(button)命令,所以我們只能使用PushButton,雙擊就能更改顯示名稱
[img]http://dl.iteye.com/upload/attachment/238040/a06ab2a8-03a2-3104-b541-11957a4c38d2.png[/img]
到這里我們的UI就完成了,接下來(lái)就是對(duì)相應(yīng)的控件進(jìn)行命令綁定,當(dāng)objTypeOM(Combo Box)的項(xiàng)目發(fā)生變化時(shí),我希望objNameTF(Line Edit)里的內(nèi)容是objTypeOM所選的項(xiàng)目的名稱,mel_changeType()就是用來(lái)完成這些的命令
global proc mel_changeType()
{
string $objType = `optionMenu -q -v objTypeOM`;
textField -e -tx $objType objNameTF;
}
而當(dāng)objNameTF里的內(nèi)容是objTypeOM中的項(xiàng)目名稱時(shí),按下回車后objTypeOM會(huì)把該項(xiàng)目設(shè)置為當(dāng)前所選的項(xiàng)目,我們需要mel_changeName()
global proc mel_changeName()
{
string $objTypes[] = {"Sphere","Cube","Cylinder","Cone","Plane"};
string $text = `textField -q -tx objNameTF`;
for($i in $objTypes)
{
if ($text == $i)
optionMenu -e -v $i objTypeOM;
}
}
最后是Ok按鈕的命令,在按下Ok按鈕時(shí)我希望能根據(jù)objTypeOM所選的項(xiàng)目來(lái)創(chuàng)建相應(yīng)的物體,物體的名稱則是objNameTF里的內(nèi)容,這就需要mel_btnCmd()
global proc mel_btnCmd()
{
string $objType = `optionMenu -q -v objTypeOM`;
string $objName = `textField -q -tx objNameTF`;
switch($objType)
{
case "Sphere":
polySphere -n $objName;
break;
case "Cube":
polyCube -n $objName;
break;
case "Cylinder":
polyCylinder -n $objName;
break;
case "Cone":
polyCone -n $objName;
break;
case "Plane":
polyPlane -n $objName;
break;
}
}
現(xiàn)在我們把這些方法和對(duì)應(yīng)的控件進(jìn)行綁定,選擇objTypeOM在Property Editor里點(diǎn)擊加號(hào)圖標(biāo)并選擇"String"來(lái)添加動(dòng)態(tài)屬性
[img]http://dl.iteye.com/upload/attachment/238055/a9e4ce67-c36b-343d-b39d-3223ee523228.png[/img]
因?yàn)?#34;Combo Box"就是optionMenu,所以我們只要加入optionMenu命令的標(biāo)簽maya就能識(shí)別,需要注意的是在標(biāo)簽前面是"-"的代表使用mel,是"+"的代表使用python,我為什么給上面的方法都加一個(gè)"mel"前綴,就是為了區(qū)分mel和python。我們需要的是"changeCommand"標(biāo)簽,所以我們要輸入"-changeCommand"
[img]http://dl.iteye.com/upload/attachment/238061/e3a1df83-b411-376b-8731-0310fd9abcc5.png[/img]
然后在"-changeCommand"屬性中加入"mel_changeType()"(包括雙引號(hào)),來(lái)完成綁定
[img]http://dl.iteye.com/upload/attachment/238070/21e03fe3-5e4d-33f9-b696-e17b43c471fd.png[/img]
同樣我們也給objNameTF添加"-changeCommand"屬性,并將它和"mel_changeName()"綁定;而Ok按鈕就添加"-command"屬性并將它和"mel_btnCmd()"綁定;最后是Close按鈕,也給它添加"-command"屬性,并輸入"deleteUI QtDialog",這樣在點(diǎn)擊Close時(shí)就會(huì)關(guān)閉窗口。
把UI保存為createDialog.ui(可以是其它名稱),我們可以轉(zhuǎn)到maya來(lái)了,因?yàn)槲业谋颈緹o(wú)法使用maya2011,所以就無(wú)法截圖了。在腳本編輯器(mel面板)中執(zhí)行下面的腳本
// 請(qǐng)根據(jù)你的createDialog.ui文件路徑進(jìn)行修改
// 如果使用的是win系統(tǒng),請(qǐng)使用\\來(lái)代替\
string $dialog = `loadUI -uiFile "/home/schi/createDialog.ui"`;
showWindow $dialog;
// objTypeOM command
global proc mel_changeType()
{
string $objType = `optionMenu -q -v objTypeOM`;
textField -e -tx $objType objNameTF;
}
// objNameTF command
global proc mel_changeName()
{
string $objTypes[] = {"Sphere","Cube","Cylinder","Cone","Plane"};
string $text = `textField -q -tx objNameTF`;
for($i in $objTypes)
{
if ($text == $i)
optionMenu -e -v $i objTypeOM;
}
}
// Ok button command
global proc mel_btnCmd()
{
string $objType = `optionMenu -q -v objTypeOM`;
string $objName = `textField -q -tx objNameTF`;
switch($objType)
{
case "Sphere":
polySphere -n $objName;
break;
case "Cube":
polyCube -n $objName;
break;
case "Cylinder":
polyCylinder -n $objName;
break;
case "Cone":
polyCone -n $objName;
break;
case "Plane":
polyPlane -n $objName;
break;
}
}
[img]http://dl.iteye.com/upload/attachment/238096/ece4832b-b2af-37ab-801b-f1cfd02b0a86.png[/img]
這個(gè)窗口就會(huì)出現(xiàn)在你的面前,當(dāng)然是黑色的UI,你可以選擇不同的物體類型來(lái)查看效果,或是在物體名稱欄中輸入"Sphere","Cube","Cylinder","Cone","Plane"(不包括雙引號(hào)),最后點(diǎn)擊按鈕,你都會(huì)看到相應(yīng)的動(dòng)作。
你還可以將這個(gè)窗口和maya的主窗口進(jìn)行整合,這樣可以使你的窗口像Attribute Editor和Channel Box一樣可以隨便移動(dòng)到maya的主窗口的任何位置,你只需要使用這一行命令
dockControl -content $dialog;
要使用python命令,就是把控件的屬性添加成"+"的就行,其它都是一樣的,需要注意的是你不能給控件同時(shí)添加"-"和"+"的屬性,因?yàn)檫@樣做并不能同時(shí)使用mel和python反而會(huì)造成無(wú)法識(shí)別方法而發(fā)生錯(cuò)誤。
最后附上python的方法并附上.ui文件
# 請(qǐng)根據(jù)你的createDialog.ui文件路徑進(jìn)行修改
# 如果使用的是win系統(tǒng),請(qǐng)使用\\來(lái)代替\
dialog = cmds.loadUI(uiFile='C:\\mack\\qt\\createDialog_py.ui')
cmds.showWindow(dialog)
# 如需要整合到maya主界面,可以使用該行
cmds.dockControl( area='left', content=dialog )
# objTypeOM command
def py_changeType():
objType = cmds.optionMenu('objTypeOM_py',q=1,v=1)
cmds.textField('objNameTF_py',e=1,tx=objType)
# objNameTF command
def py_changeName():
objTypes = ("Sphere","Cube","Cylinder","Cone","Plane")
name = cmds.textField('objNameTF_py',q=1,tx=1)
[cmds.optionMenu('objTypeOM_py',e=1,v=i) for i in objTypes if name == i]
# Ok button command
def py_btnCmd():
objType = cmds.optionMenu('objTypeOM_py',q=1,v=1)
name = cmds.textField('objNameTF_py',q=1,tx=1)
if objType == "Sphere": cmds.polySphere(n=name)
elif objType == "Cube": cmds.polyCubee(n=name)
elif objType == "Cylinder": cmds.polyCylinder(n=name)
elif objType == "Cone": cmds.polyCone(n=name)
elif objType == "Plane": cmds.polyPlane(n=name)
Ok,感嘆到此為止,進(jìn)入我們今天的話題"Working with Qt",主要介紹如何使用Qt的Designer來(lái)給maya制作UI,有了Designer不管你是程序員還是非程序員,都能輕松給maya制作UI。
先給出Qt的下載地址,Maya 2011 使用的是 Qt 4.5,版本4.5.X的X是無(wú)關(guān)緊要的,如果你只是用來(lái)制作UI我認(rèn)為版本應(yīng)該不重要,但如果你是想要寫基于Qt的maya插件,那版本就十分重要了。
Win
[url]ftp://ftp.qt.nokia.com/qt/source/qt-win-opensource-4.5.3-mingw.exe[/url]
Linux 請(qǐng)參考[url]http://download.autodesk.com/us/maya/2011help/files/Setting_up_your_build_environment_Linux_environments_32bit_and_64bit.htm[/url]
Mac
[url]ftp://ftp.qt.nokia.com/qt/source/qt-mac-cocoa-opensource-4.5.3.dmg[/url]
安裝好Qt后就可以使用Designer了,在開始制作UI前我簡(jiǎn)單的給你們說(shuō)一下maya是如何讀取.ui文件的。雖然maya2011使用了Qt框架,但據(jù)我所知maya不是像Qt那樣的讀取.ui文件,而是通過(guò)loadUI命令來(lái)讀取的,再通過(guò)MQtUtil類來(lái)進(jìn)行(已識(shí)別的)maya的腳本和Qt的插件(widgets)的連接來(lái)完成的,簡(jiǎn)單的說(shuō)就是通過(guò)loadUI命令讀取.ui文件,將讀取的內(nèi)容給MQtUtil進(jìn)行過(guò)濾,如果能識(shí)別就會(huì)轉(zhuǎn)化成對(duì)應(yīng)mel命令來(lái)實(shí)現(xiàn)UI。所以雖然你使用Designer制作的UI,實(shí)際用起來(lái)還是基于mel的UI??梢妋aya還是在力挺mel啊,都撐了10年了。
打開Designer,我們要開始制作UI了,選擇"Dialog without Buttons",點(diǎn)擊"Create"
[img]http://dl.iteye.com/upload/attachment/237430/8ca111df-b13a-3e05-a4ee-078e254c8fcc.png[/img]
給窗口一個(gè)獨(dú)一無(wú)二的名稱,如"QtDialog",就像你在用mel寫UI時(shí)一樣給窗口一個(gè)獨(dú)一無(wú)二的名稱是一個(gè)很安全的做法,這樣你以后就能用mel后python來(lái)對(duì)其進(jìn)行訪問(wèn)了,如果你像更改窗口的標(biāo)題可以在"windowTitle"那里更改
[img]http://dl.iteye.com/upload/attachment/237432/ab309d13-b766-39c0-ba44-042d2c86fdd4.png[/img]
加入我們需要的控件兩個(gè)"Label",一個(gè)"Combo Box"和一個(gè)"Line Edit",在Widget Box中找到后直接拖到窗口中就行
[img]http://dl.iteye.com/upload/attachment/237437/f680b080-6bb9-3b04-94bf-b913a216f062.png[/img][img]http://dl.iteye.com/upload/attachment/237440/14c203d3-b39b-35cc-a11f-b34acb60c1f9.png[/img]
雙擊"Label"就可以編輯它們的顯示內(nèi)容,因?yàn)槲覀儾恍枰獙?duì)其進(jìn)行訪問(wèn),所以不需要給它們一個(gè)獨(dú)一無(wú)二的名稱,你也可以編輯它們的字體等屬性,但"Combo Box"和"Line Edit"就需要了,如圖Object列是它們?cè)趍aya里的名稱,Class是控件的類型,我把"Combo Box"命名為"objTypeOM","OM"是optionMenu的縮寫,這樣命名是因?yàn)?#34;Combo Box"就是optionMenu,可以推論"Line Edit"就是textField,所以我命名為"objNameTF"
[img]http://dl.iteye.com/upload/attachment/237442/2eeaf617-89d9-334d-b6b1-cdb161998156.png[/img]
右鍵"Combo Box"來(lái)編輯它的項(xiàng)目
[img]http://dl.iteye.com/upload/attachment/237446/8c18a779-c3da-3404-9db7-423114085bc2.png[/img]
并加入"Sphere","Cube","Cylinder","Cone","Plane"
[img]http://dl.iteye.com/upload/attachment/238027/b731caff-66fd-3f6b-9eec-15b9018febb6.png[/img]
現(xiàn)在我們來(lái)添加兩個(gè)按鈕,也許你會(huì)問(wèn)為什么不在一開始就選擇一個(gè)有按鈕的UI來(lái)創(chuàng)建呢,原因很簡(jiǎn)單,Qt里默認(rèn)的帶按鈕的窗口都是使用QDialogButtonBox插件(widgets),這是maya不能識(shí)別的,因?yàn)閙el沒有按鈕組,只有按鈕(button)命令,所以我們只能使用PushButton,雙擊就能更改顯示名稱
[img]http://dl.iteye.com/upload/attachment/238040/a06ab2a8-03a2-3104-b541-11957a4c38d2.png[/img]
到這里我們的UI就完成了,接下來(lái)就是對(duì)相應(yīng)的控件進(jìn)行命令綁定,當(dāng)objTypeOM(Combo Box)的項(xiàng)目發(fā)生變化時(shí),我希望objNameTF(Line Edit)里的內(nèi)容是objTypeOM所選的項(xiàng)目的名稱,mel_changeType()就是用來(lái)完成這些的命令
global proc mel_changeType()
{
string $objType = `optionMenu -q -v objTypeOM`;
textField -e -tx $objType objNameTF;
}
而當(dāng)objNameTF里的內(nèi)容是objTypeOM中的項(xiàng)目名稱時(shí),按下回車后objTypeOM會(huì)把該項(xiàng)目設(shè)置為當(dāng)前所選的項(xiàng)目,我們需要mel_changeName()
global proc mel_changeName()
{
string $objTypes[] = {"Sphere","Cube","Cylinder","Cone","Plane"};
string $text = `textField -q -tx objNameTF`;
for($i in $objTypes)
{
if ($text == $i)
optionMenu -e -v $i objTypeOM;
}
}
最后是Ok按鈕的命令,在按下Ok按鈕時(shí)我希望能根據(jù)objTypeOM所選的項(xiàng)目來(lái)創(chuàng)建相應(yīng)的物體,物體的名稱則是objNameTF里的內(nèi)容,這就需要mel_btnCmd()
global proc mel_btnCmd()
{
string $objType = `optionMenu -q -v objTypeOM`;
string $objName = `textField -q -tx objNameTF`;
switch($objType)
{
case "Sphere":
polySphere -n $objName;
break;
case "Cube":
polyCube -n $objName;
break;
case "Cylinder":
polyCylinder -n $objName;
break;
case "Cone":
polyCone -n $objName;
break;
case "Plane":
polyPlane -n $objName;
break;
}
}
現(xiàn)在我們把這些方法和對(duì)應(yīng)的控件進(jìn)行綁定,選擇objTypeOM在Property Editor里點(diǎn)擊加號(hào)圖標(biāo)并選擇"String"來(lái)添加動(dòng)態(tài)屬性
[img]http://dl.iteye.com/upload/attachment/238055/a9e4ce67-c36b-343d-b39d-3223ee523228.png[/img]
因?yàn)?#34;Combo Box"就是optionMenu,所以我們只要加入optionMenu命令的標(biāo)簽maya就能識(shí)別,需要注意的是在標(biāo)簽前面是"-"的代表使用mel,是"+"的代表使用python,我為什么給上面的方法都加一個(gè)"mel"前綴,就是為了區(qū)分mel和python。我們需要的是"changeCommand"標(biāo)簽,所以我們要輸入"-changeCommand"
[img]http://dl.iteye.com/upload/attachment/238061/e3a1df83-b411-376b-8731-0310fd9abcc5.png[/img]
然后在"-changeCommand"屬性中加入"mel_changeType()"(包括雙引號(hào)),來(lái)完成綁定
[img]http://dl.iteye.com/upload/attachment/238070/21e03fe3-5e4d-33f9-b696-e17b43c471fd.png[/img]
同樣我們也給objNameTF添加"-changeCommand"屬性,并將它和"mel_changeName()"綁定;而Ok按鈕就添加"-command"屬性并將它和"mel_btnCmd()"綁定;最后是Close按鈕,也給它添加"-command"屬性,并輸入"deleteUI QtDialog",這樣在點(diǎn)擊Close時(shí)就會(huì)關(guān)閉窗口。
把UI保存為createDialog.ui(可以是其它名稱),我們可以轉(zhuǎn)到maya來(lái)了,因?yàn)槲业谋颈緹o(wú)法使用maya2011,所以就無(wú)法截圖了。在腳本編輯器(mel面板)中執(zhí)行下面的腳本
// 請(qǐng)根據(jù)你的createDialog.ui文件路徑進(jìn)行修改
// 如果使用的是win系統(tǒng),請(qǐng)使用\\來(lái)代替\
string $dialog = `loadUI -uiFile "/home/schi/createDialog.ui"`;
showWindow $dialog;
// objTypeOM command
global proc mel_changeType()
{
string $objType = `optionMenu -q -v objTypeOM`;
textField -e -tx $objType objNameTF;
}
// objNameTF command
global proc mel_changeName()
{
string $objTypes[] = {"Sphere","Cube","Cylinder","Cone","Plane"};
string $text = `textField -q -tx objNameTF`;
for($i in $objTypes)
{
if ($text == $i)
optionMenu -e -v $i objTypeOM;
}
}
// Ok button command
global proc mel_btnCmd()
{
string $objType = `optionMenu -q -v objTypeOM`;
string $objName = `textField -q -tx objNameTF`;
switch($objType)
{
case "Sphere":
polySphere -n $objName;
break;
case "Cube":
polyCube -n $objName;
break;
case "Cylinder":
polyCylinder -n $objName;
break;
case "Cone":
polyCone -n $objName;
break;
case "Plane":
polyPlane -n $objName;
break;
}
}
[img]http://dl.iteye.com/upload/attachment/238096/ece4832b-b2af-37ab-801b-f1cfd02b0a86.png[/img]
這個(gè)窗口就會(huì)出現(xiàn)在你的面前,當(dāng)然是黑色的UI,你可以選擇不同的物體類型來(lái)查看效果,或是在物體名稱欄中輸入"Sphere","Cube","Cylinder","Cone","Plane"(不包括雙引號(hào)),最后點(diǎn)擊按鈕,你都會(huì)看到相應(yīng)的動(dòng)作。
你還可以將這個(gè)窗口和maya的主窗口進(jìn)行整合,這樣可以使你的窗口像Attribute Editor和Channel Box一樣可以隨便移動(dòng)到maya的主窗口的任何位置,你只需要使用這一行命令
dockControl -content $dialog;
要使用python命令,就是把控件的屬性添加成"+"的就行,其它都是一樣的,需要注意的是你不能給控件同時(shí)添加"-"和"+"的屬性,因?yàn)檫@樣做并不能同時(shí)使用mel和python反而會(huì)造成無(wú)法識(shí)別方法而發(fā)生錯(cuò)誤。
最后附上python的方法并附上.ui文件
# 請(qǐng)根據(jù)你的createDialog.ui文件路徑進(jìn)行修改
# 如果使用的是win系統(tǒng),請(qǐng)使用\\來(lái)代替\
dialog = cmds.loadUI(uiFile='C:\\mack\\qt\\createDialog_py.ui')
cmds.showWindow(dialog)
# 如需要整合到maya主界面,可以使用該行
cmds.dockControl( area='left', content=dialog )
# objTypeOM command
def py_changeType():
objType = cmds.optionMenu('objTypeOM_py',q=1,v=1)
cmds.textField('objNameTF_py',e=1,tx=objType)
# objNameTF command
def py_changeName():
objTypes = ("Sphere","Cube","Cylinder","Cone","Plane")
name = cmds.textField('objNameTF_py',q=1,tx=1)
[cmds.optionMenu('objTypeOM_py',e=1,v=i) for i in objTypes if name == i]
# Ok button command
def py_btnCmd():
objType = cmds.optionMenu('objTypeOM_py',q=1,v=1)
name = cmds.textField('objNameTF_py',q=1,tx=1)
if objType == "Sphere": cmds.polySphere(n=name)
elif objType == "Cube": cmds.polyCubee(n=name)
elif objType == "Cylinder": cmds.polyCylinder(n=name)
elif objType == "Cone": cmds.polyCone(n=name)
elif objType == "Plane": cmds.polyPlane(n=name)
總結(jié)
以上是生活随笔為你收集整理的Working with Qt maya2011的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2022年危险化学品经营单位安全管理人员
- 下一篇: mac和windows共享键盘鼠标方案