概括
本文介绍了如何使用 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 节点的捕捉菜单添加一个自定义选项。更多信息请参见: 扩展新的捕捉菜单
我们很遗憾听到
请告诉我们