创建支持服务单
关注

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

摘要

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

更多信息

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

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

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

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

菜单类
MenuItem类

QAction是一个QT / PySide类,是一个可用于执行命令的抽象动作。

有关QActions的更多信息,请参阅QT文档: http ://doc.qt.io/qt-5/qaction.html

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

方法

为了在Nuke的菜单结构中激活一个命令,你需要“找到”特定的MenuItem容器并调用其相关的QAction。这可以使用以下代码完成:

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

第一行代码

returns the Menu class of the main Nuke menu toolbar.

If you're looking to access the nodes toolbar, this can be done with the same command by replacing “Nuke” with “Nodes”. 

 

...

The second line

mainMenu.findItem("Edit/Clone").invoke()

uses the findItem() function to find the 'Clone' MenuItem container inside the 'Edit' Menu, then activates the QAction of that MenuItem via the .invoke() function. The result in this case would be cloning the selected nodes.

NOTE:  To create the path to find a particular QAction in a menu system, you need to use / as separator every time you enter a sub menu. For example: Edit/Clone, Viewer/View/Next, etc.

 

 

这篇文章有帮助吗?

我们很遗憾听到

请告诉我们
5 人中有 5 人觉得有帮助