Q100354:如何使用 Python 激活 Nuke 菜单命令

关注

概括

本文介绍如何以 Python 方式从Nuke菜单系统激活命令。

更多信息

Nuke的图形用户界面 (GUI) 非常可定制,作为其中的一部分,您可以在菜单系统中添加、移动或激活各种项目,从而允许用户设置自定义管道并完全集成到Nuke中。

Nuke的菜单系统由两个主要类组成,Menus 和 MenuItems,其定义如下:

  • 菜单类:其他菜单或菜单项的容器
  • MenuItem 类: QAction 的容器,在Nuke中执行操作

Menu 和 MenuItem 类用于在Nuke中创建菜单结构。您还可以使用它们来制作自己的菜单结构,从而允许自定义菜单。有关这两个类的更多信息可以在这里找到:

QAction 是一个 QT/PySide 类,是一个可用于执行命令的抽象操作。有关 QActions 的更多信息可以在 QT 文档中找到:http: //doc.qt.io/qt-5/qaction.html

当您从 GUI 中的Nuke菜单执行命令时,您实际上是在告诉 MenuItem 容器调用其关联的 QAction。例如,当您在“编辑”菜单中选择“克隆 QAction”时,将克隆一个节点,因为这是分配给该 QAction 的命令。

方法

为了以 Python 方式激活Nuke菜单结构中的命令,您需要“找到”特定的 MenuItem 容器并调用其关联的 QAction。这可以使用下面的代码来完成:

mainMenu = nuke .menu("Nuke")
mainMenu.findItem("Edit/Clone").invoke()

第一行代码mainMenu = nuke .menu("Nuke")返回Nuke主菜单工具栏的 Menu 类:

注意:如果您想访问节点工具栏,可以使用相同的命令将“Nuke”替换为“Nodes”来完成:

第二行mainMenu.findItem("Edit/Clone").invoke()使用findItem()函数在“Edit”菜单中查找“Clone”MenuItem 容器。然后,通过invoke()函数激活该 MenuItem 的 QAction。在这种情况下的结果将是克隆选定的节点。

注意:要创建在菜单系统中查找特定 QAction 的路径,每次进入子菜单时都需要使用“/”作为分隔符。例如:编辑/克隆、查看器/查看/下一步等。


当前与nuke .menu()一起使用的有效菜单是:

“Nuke” :应用程序菜单

“Pane” :UI 窗格和面板菜单

'Nodes' :节点工具栏(和 Nodegraph 鼠标右键菜单)

“属性” :属性面板鼠标右键菜单

‘Animation ’:旋钮Animation菜单和Curve Editor鼠标右键菜单

'Viewer' :查看器右键菜单

'Node Graph' : 节点图鼠标右键菜单

'Axis' :出现在所有 Axis_Knobs 菜单中的功能。

    我们很遗憾听到

    请告诉我们