Nukepython自定义菜单和移动

鍖椾含涓鍖婚櫌 http://yyk.39.net/bj/zhuanke/89ac7.html

因为公司插件安装的太多导致Nuke侧边菜单都挤满了然后想整理一下把几个把几个不常用菜单移动到其他的地方

importnukenodeMenu=nuke.menu("Nodes")menuA=nodeMenu.addMenu("MenuA")menuA.addCommand("MenuA","print(helloNuke)")

先整个测试用的菜单

现在看看能把能把这个自带的Image移动到那个里面

可以用addAction的方法

imageNode=nodeMenu.menu("Image")menuA.addAction(imageNode.action())

好像是成功了

把原来的菜单删掉

nodeMenu.removeItem("Image")

既然这样没问题我准备把他加的Nuke的启动菜单里测试没问题打卡下班

然后没有加上而且Nuke也崩了

试了半天还是没有解决,而且发现他虽然可以拷贝到另一个地方删除掉原来的菜单后TAB键就找不到这些节点了

那我能不能获取到他菜单的命令图标以及快捷键创建一个新的然后删除掉原来的就当是我移动了他

我写的垃圾代码

importnuketoolbar=nuke.menu("Nodes")#把当前能读取到的菜单放到一个列表里后面会做一个判断menuNames=[item.name()foritemintoolbar.items()]defgetItemShortcut(item):qKey=item.action().shortcuts()ifqKey:returnqKey[0].toString()else:return""defmoveMenu(menuName,newMenu,isMenu=True,toolbar=nuke.menu("Nodes")):mMenu=toolbar.menu(menuName)ifisMenu:newMenuPath=newMenu.addMenu(menuName)else:newMenuPath=newMenuforiteminmMenu.items():if"%s"%type(item)=="typeMenuItem":mSortcut=getItemShortcut(item)newMenuPath.addCommand(item.name(),item.script(),mSortcut,icon=item.icon())elif"%s"%type(item)=="typeMenu":#这里创建菜单我没有get到他原来图标有大佬知道这个吗subNewMenu=newMenuPath.addMenu(item.name(),icon=item.icon())moveMenu(subNewMenu.name(),subNewMenu,False,toolbar=mMenu)returnmMenunewMenu=toolbar.addMenu("newMenu")#新菜单的名字moveList=["Image","Draw","Time","Channel"]#把需要移动的菜单放到这里foriteminmoveList:ifiteminmenuNames:mSubmenu=moveMenu(item,newMenu,toolbar)toolbar.removeItem(mSubmenu.name())#创建完新的把旧的给删掉

测试过是可以加到启动菜单里的TAB键也可以找到节点命令的图标和快捷键也可以继承只有子菜单图标我没有获取到

预览时标签不可点收录于话题#个上一篇下一篇



转载请注明地址:http://www.sanbaicaoasb.com/scgj/8583.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章