首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问玛雅主菜单和工具栏?

如何访问玛雅主菜单和工具栏?
EN

Stack Overflow用户
提问于 2016-01-18 08:19:08
回答 1查看 2K关注 0票数 0

我使用Autodesk Maya 2016 + Python。

我有个问题。我需要替换标准菜单项和工具栏的功能。例如,您必须添加该函数以保存记录函数。因为不同的人使用不同的功能,所以你必须同时改变一切。有人按Ctrl+S,另一些人转到菜单File->Save,有些人按工具栏上的图标。在所有领域,都有必要替换该功能。我理解这个问题归结为为了访问菜单、工具栏和键盘快捷键。接下来,查找产业上的关联项,以了解现在调用的函数。然后将其替换为它们的原因,并在此菜单前面调用的函数的末尾。

  1. 如何获得玛雅主菜单(如File和其他)?
  2. 如何获得玛雅主工具栏?
  3. 怎么弄到玛雅热键?

玛雅是基于QT的。所以只需要得到对象,然后就有了QT的标准手段就可以做任何事情。

该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 20:47:19

这三种方法都调用了名为runTimeCommandSaveScene。重写该命令,您已经劫持了您描述的所有三种方式。这有点棘手,因为该命令被标记为-default标志,这使得不可能动态更改它们。您可以将它们挂在第一次定义的位置。它们是在文件中定义的:

  • Mayadir/scripts/startup/defaultRunTimeCommands.mel

将此文件复制到用户配置文件maya脚本目录或studio脚本目录中。这些将获得优先的工厂脚本,因为解决顺序。不要覆盖工厂文件。然后更改行中的-command

代码语言:javascript
复制
runTimeCommand -default true
    -annotation (uiRes("m_defaultRunTimeCommands.kSaveSceneAnnot"))
    -category   ("File")
    -command    ("checkForUnknownNodes(); FileMenu_SaveItem")
    SaveScene;

其他的东西。最好在这里加个钩子。

显然,您也可以更改按钮/菜单项和热键。因此,您所做的是按照mel运行(在mel中这样做比较容易,因为大部分命令都是以这种方式构建的,如果必须的话,可以移植到python或c++ ):

代码语言:javascript
复制
runTimeCommand
    -annotation "Print the word \"Hello\""
    -command ("print \"foo\"")
    MySave;
nameCommand         
    -annotation "Print the word \"Hello\""
    -command ("print \"foo\"")
    MySaveNamed;
buildFileMenu();
menuItem -e -c "MySave" "MayaWindow|mainFileMenu|saveItem";
iconTextButton -e -c "MySave2" openSceneButton;
hotkey -keyShortcut "s" -ctl -name ("MySaveNamed");

警告:热键在prefs中将是永久的,直到您将它改回或重置prefs为止。

请注意:至少还有另外两种用户可以保存的方式,即使您想要保存,也不能完全控制它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34850004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档