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

概括

本文介绍了如何使用 Python 从Nuke菜单系统中激活命令。

更多信息

Nuke的图形用户界面 (GUI) 具有很强的可定制性,用户可以在菜单系统中添加、移动或激活各种项目,从而设置自定义流程并与Nuke完全集成。

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

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

Menu 和 MenuItem 类用于在Nuke中创建菜单结构。您也可以使用它们创建自己的菜单结构,从而实现自定义菜单。有关这两个类的更多信息,请参阅此处:

QAction 是 QT/PySide 中的一个类,它是一个抽象操作,可用于执行命令。有关 QAction 的更多信息,请参阅此处的 QT 文档:
https://doc.qt.io/qt-6/qaction.html

当您在图形用户界面 (GUI) 中通过Nuke菜单执行命令时,实际上是在指示一个菜单项容器调用其关联的 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()函数查找“编辑”菜单中的“克隆”菜单项容器。然后,通过invoke()函数激活该菜单项的 QAction。在这种情况下,结果是克隆选定的节点。

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


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

“核弹” :应用程序菜单

“窗格” :用户界面窗格和面板菜单

“节点” :节点工具栏(以及节点图右键菜单)

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

“动画”:旋钮动画菜单和曲线编辑器右键菜单

“查看器” :查看器右键菜单

“节点图” :节点图右键菜单

“轴” :所有经典 3D 轴旋钮菜单中显示的功能。

“场景图” :场景图面板右键菜单

“捕捉” :为 Beta 3D 节点的捕捉菜单添加一个自定义选项。更多信息请参见: 扩展新的捕捉菜单

    我们很遗憾听到

    请告诉我们