python - 玛雅人。有没有办法通过改变视口来激活脚本作业?
问题描述
有一个名为“ActiveViewChanged”的事件,但它不起作用。我会知道另一种方法来通过在 Maya 中切换视口来启动动作。例子:
import maya.cmds as cmds
def clix():
print "you have clicked on another view"
cmds.scriptJob (event=["ActiveViewChanged","clix()"])
解决方案
我可以确认这"ActiveViewChanged"
似乎没有任何效果。在四处搜索之后,似乎许多其他人也有同样的问题。
您可以尝试改用它:
cmds.scriptJob(event=["ModelPanelSetFocus", "clix()"])
尽管它似乎不会在您期望的时候触发(单击视口!)而是在视口中的按键时触发。
可以通过 api 添加回调,使用OpenMaya
. 我发现的唯一一个是这样的:
OpenMaya.MEventMessage.addEventCallback("ActiveViewChanged", clix)
尽管这与"ModelPanelSetFocus"
.
我想您还可以设置一个计时器来查询当前面板以检测它是否已更改,如果已更改则触发。这对于临时计时器来说可能没问题,比如在工具打开期间,但如果假设它在整个 Maya 会话中运行,我会反对它,因为它会增加额外的开销。
推荐阅读
- python - 如何使用python编写比较查询?
- database - 如何在我们的软件中存储电子邮件详细信息?
- ios - 单元测试路径权限的领域文件(Xcode,Swift)
- html - Jquery条件类添加
- javascript - 为什么 sessionStorage 不更新 React 中的页面?
- android - 在左侧和右侧禁用android 10后退手势
- amazon-web-services - 错误:无效索引给定键未标识此集合值中的元素中转网关路由
- ios - 使用箭头键在 Xcode 中的 Storyboard 元素之间移动?
- flutter - Flutter:实现自定义滑动动画
- kubernetes - 使用“kubectl describe”命令出现“无法获取资源”错误