Nuke自定义菜单¶
在Nuke中自定义菜单相对比较简单,都是通过Python来实现的,打开Windows>Script Editor查看nuke.menu函数的帮助文档。
- “Nuke” 获取主菜单的实例对象
- “Pane” 获取面板菜单的实例对象
- “Nodes” 获取工具栏菜单的实例对象
- “Properties” 获取参数菜单的实例对象
- “Animation” 获取动画曲线参数菜单的实例对象
- “Viewer” 获取视图菜单的实例对象
- “Node Graph” 获取节点网络菜单的实例对象
- “Axis” 获取Axis节点上File或Snap菜单的实例对象
可以通过nuke.menu(“Nuke”)来获取菜单实例,再次查看实例对象的属性与方法。
import nuke
mainMenu = nuke.menu("Nuke")
print(dir(mainMenu))
# Result: ['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'action', 'addAction', 'addCommand', 'addMenu', 'addSeparator', 'clearMenu', 'findItem', 'icon', 'invoke', 'items', 'menu', 'name', 'removeItem', 'script', 'setEnabled', 'setIcon', 'setScript', 'setShortcut', 'setVisible', 'shortcut', 'updateMenuItems']
其中addMenu方法可以在此菜单对象上添加一个菜单,返回此菜单的实例对象,addCommand可以添加一个执行命令的菜单。
- Menu class
- MenuItem class
import nuke
mainMenu = nuke.menu("Nuke")
toolMenu = mainMenu.addMenu("DO-VFX")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="t")
shortcut参数是设置菜单执行的快捷方式,如果想加上Ctrl,Alt或者Shift,可以通过下面两种方案。
import nuke
mainMenu = nuke.menu("Nuke")
toolMenu = mainMenu.addMenu("DO-VFX")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="ctrl+t")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="^t")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="alt+t")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="#t")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="shift+t")
toolMenu.addCommand("Choose Task", "print(100)", shortcut="+t")
nuke.menu(“Nuke”)是主菜单的实例对象,如果想创建左侧工具栏工具,可以通过nuke.menu(“Nodes”)或者nuke.toolbar(“Nodes”)来获取实例对象。
import nuke
toolbar = nuke.toolbar("Nodes")
doToolbar = toolbar.addMenu("DO-VFX", "设置图标路径")
doToolbar.addCommand("Choose Task", "print(100)")
可以通过Python来执行某一个菜单。
import nuke
mainMenu = nuke.menu("Nuke")
mainMenu.findItem("Edit/Clone").invoke()
修改创建节点的默认参数。
import nuke
nuke.knobDefault("Blur.size", "10")