如何访问Maya主菜单和工具栏?

时间:2016-01-18 08:19:09

标签: python qt menu toolbar maya

我使用的是Autodesk Maya 2016 + Python。

我遇到了问题。我需要替换标准菜单项和工具栏的功能。例如,您必须添加保存录制功能的功能。由于不同的人使用不同的功能,您必须立即更改所有内容。有人按下Ctrl+S,其他人按下菜单File->Save,有些按下工具栏上的图标。在所有领域都需要更换功能。我知道问题可归结为访问菜单,工具栏和键盘快捷键。接下来,找到庄园中的关联项目,以了解现在调用的函数。然后用它们的原因和在此菜单中先前调用的函数的末尾替换它。

  1. 如何获取Maya主菜单(如File和其他)?
  2. 如何获取Maya主工具栏?
  3. 如何获取Maya热键?
  4. Maya基于QT。所以只需要获取对象,然后让QT的标准方法可以做任何事情。

    怎么做?

1 个答案:

答案 0 :(得分:2)

执行此操作的所有三种方式都会调用名为runTimeCommand的{​​{1}}。覆盖该命令,您已经劫持了您描述的所有三种方式。这有点棘手,因为命令标有SaveScene标志,这使得无法动态更改它们。您可以将它们挂钩到首次定义的位置。它们在文件中定义:

  • Mayadir /脚本/启动/ defaultRunTimeCommands.mel

将此文件复制到您的用户配置文件maya脚本目录或工作室脚本目录。由于分辨率顺序,这些将优先于工厂脚本。 覆盖工厂文件。然后在行中更改-default

-command

到别的地方。最好的只是在这里添加一个钩子。

显然,您也可以更改按钮/ menuitem和热键。所以你要做的就是在mel之后运行(因为大部分命令是以这种方式构建的,所以你可以更容易地在mel中执行此操作,如果必须,可以移植到python或c ++):

runTimeCommand -default true
    -annotation (uiRes("m_defaultRunTimeCommands.kSaveSceneAnnot"))
    -category   ("File")
    -command    ("checkForUnknownNodes(); FileMenu_SaveItem")
    SaveScene;

警告:热键在prefs中是永久性的,直到您将其更改回来或重置prefs。

请注意:用户可以至少保存两种其他方式,即使您愿意,也无法完全控制这些方式。