python菜单栏_NUKE PYTHON 自定义菜单栏UI

摘要:在nuke如何创建和绑定自定义菜单?

创建自定义菜单

m = nuke.menu('Viewer')

myMenu = m.addMenu('MyStuff')

给菜单添加icon

m = nuke.menu('Viewer')

myMenu = m.addMenu('MyStuff', icon = 'ohu_icon.png' )

14968218255751.png

创建自定义工具栏

myToolbar = nuke.toolbar('My nodes')

14968218261829.png

给toolbar添加item和给menu添加一样

myToolbar.addCommand(‘My Gizmo’, lambda: nuke.createNode(‘NoOp’ ) )

如果没给item指定toolbar,那将成为一个按钮:

14968218262470.png

否则,item作为菜单项( 像默认工具栏那样):

myToolbar.addCommand( 'My other Tools/tool A', lambda: nuke.createNode( 'NoOp') ) myToolbar.addCommand(' My Other tools/tool B', lambda: nuke.createNode('NoOp') )

14968218269963.png

给menu添加icon,那就在创建前明确指定。

myMenu = myToolbar.addMenu(‘My Gizmo’, icon= ‘ohu_icon.png’ )

myMenu.addCommand( ‘tool A’, lambda: nuke.createNode(‘NoOp’))

myMenu.addCommand(‘ tool B’, lambda: nuke.createNode(‘NoOp’))

14968218264957.png

创建自定义菜单项

给菜单添加自定义入口,请用menu.addCommand():

nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 1’, lambda:nuke.message(‘yay, it works’ ))

注意:上面的例子中,我们创建了叫MyMenu的菜单

14968218269445.png

利用lambda表达式创建的匿名函数要在菜单项调用时才执行,你可以将需要的命令打包进一个字符串:

nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 2’, “nuke.message(‘yay, it works too’)” )

14968218263072.png

要设置菜单项的位置请使用index参数:

nuke.menu(‘Nuke’).addCommand(‘MyMenu/my tool 1.5’, “nuke.message(‘yay, it works too’)”, index = 1 )

14968218266852.png

通过名字找到菜单,并在前面添加一个分割线:

m = nuke.menu('Nuke').findItem('MyMenu')

m.addSeparator()

nuke.menu('Nuke').addCommand('MyMenu/my tool 3', "nuke.message('yay, it works too')")

14968218268794.png

找到已存在的menu 项,并运行其函数:

m = nuke.menu(‘Nuke’).findItem(‘Edit/Node/Filename/Show’)

m.invoke()

停用菜单项:

m = nuke.menu(‘Nuke’).findItem(‘Redner/Proxy Mode’)

m.setEnable( False )

14968218277962.png

注意,菜单虽然禁止了,但快捷键依然可用。

绑定快捷键

给已存在菜单绑定快捷键,你可以有效地取代整个菜单项

给Axis2节点绑定快捷键。这个节点在Nodes菜单里(那就是,toolbar),在3D子菜单,其子项叫Axis。

nuke.menu(‘Nodes’).addCommand(‘3D/Axis’, lambda:nuke.createNode(‘Axis2’ ), ‘a’ )

现在键盘上的a就能创建Axis节点。

14968218274530.png

当绑定快捷键时也可以修改. 用ctrl( mac上的 cmd) 作为修改:

ctrl + 后跟键

~ 后跟键

例如:

nuke.menu('Nodes').addCommand('3D/Axis', "nuke.createNode('Axis2')", "ctrl+a')

nuke.menu('Nodes').addCommand('3D/Axis', "nuke.createNode('Axis2')", "`a')

用alt作为修改:

alt+键

# + 键

nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", 'alt+a')

nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", '#a')

用shift作为修改:

shift + 键

+ 后跟键

nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", 'shift+a')

nuke.menu( 'Nodes' ).addCommand( '3D/Axis', "nuke.createNode( 'Axis2' )", '+a')

定义默认knob

修改默认knob值,请使用nuke.knobDefault()

nuke.knobDefalut('Blur.size', '77' )

上面的代码将所有blur节点的size控制默认值设置为77

当跳过节点类,新的默认值会应用到所有给定的控制上

nuke.knobDefault( 'channels', 'rgba')

上面的代码在节点创建时设置所有的channel为rgba。

saoma_pc.jpg

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值