编程语言
首页 > 编程语言> > 使用Python在Maya中删除菜单项

使用Python在Maya中删除菜单项

作者:互联网

如何使用Python从主窗口中删除菜单项?我可以使用MEL来运行它,但是我也需要Python.

无效的部分是查找菜单(如果存在并删除).我似乎在Python中找不到等效项.

Python(无法正常工作)

import maya.cmds as cmds

if(???)
{
    #cmds.deleteUI('JokerMartini', menu=True )
}

cmds.menu(label='JokerMartini', tearOff=True, p='MayaWindow')
cmds.menuItem(label='Action 1', c= 'something.run()')
cmds.menuItem(divider=True)
cmds.menuItem(label='Action 2', c= 'something.run()')

梅尔(工作)

if(`menu -exists JokerMartini`)
{
    deleteUI JokerMartini;
}
global string $gMainWindow;
setParent $gMainWindow;
menu -label "JokerMartini" -to true -aob true JokerMartini;    
menuItem -label "Action 1" -command "something";
menuItem -label "Rename..." -command "something";

解决方法:

这是创建主菜单项的一种方法:

import maya.cmds as mc

menuJM = "JM"
labelMenu = "JokerMartini"

mc.menu(menuJM, l=labelMenu, to=1, p='MayaWindow')
mc.menuItem(l='Action 1', c='something.run()')
mc.menuItem(d=True)
mc.menuItem(l='Action 2', c='something.run()')

对于删除,您应该使用以下方法:

if mc.menu(menuJM, l=labelMenu, p='MayaWindow') != 0:
    mc.deleteUI(mc.menu(menuJM, l=labelMenu, e=1, dai=1, vis=1))
    mc.deleteUI(menuJM)     

mc.refresh()

enter image description here

希望这可以帮助.

标签:maya,mel,python
来源: https://codeday.me/bug/20191026/1932848.html