【问题标题】:Is there a way to have a Maya python gui update with changes to settings in the rest of Maya?有没有办法通过更改 Maya 其余部分的设置来更新 Maya python gui?
【发布时间】:2017-10-12 02:46:43
【问题描述】:

我有一个修改 Maya 渲染层选项卡的脚本。我想知道如果用户使用内置的 Maya 界面更改渲染选项卡状态和其他内容,是否有办法让浮动 UI 动态更新。例如,如果用户在内置界面中更改渲染层,脚本选项卡中的渲染层将更新。

【问题讨论】:

    标签: user-interface maya


    【解决方案1】:

    这是可行的,但不是微不足道的。

    您可以使用scriptJob 来监视更改并相应地更新您的 gui。

    某些类型的更改是直接公开的——例如,您可以使用对playbackRangeChanged 事件作出反应的 scriptJob 来对用户更改播放范围做出反应。上面链接的文档页面包含可以监听的更改事件列表。

    如果您正在监视属性的更改,您可以使用attributeChange scriptJob 类型在特定属性发生更改时运行脚本(通过 UI 或其他任何方式)。例如,只要 Persp 相机的焦距发生变化,就会打印一条消息:

    import maya.cmds as cmds
    
    def test():
        print "focal length:",  cmds.getAttr('perspShape.focalLength')
    
    cmds.scriptJob(ac = ("perspShape.focalLength", test))
    

    其他类型的更改(其中大部分)不可用作预定义事件。您可以使用condition command 创建自己的事件,但您必须编写检测更改的代码。许多人通过使用在 Maya 空闲时运行并查找更改的脚本作业来简化事情。这行得通,但您必须仔细编写它,因为复杂的脚本会大大降低 Maya 的速度——只要用户不与 UI 交互,它就会运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2020-08-26
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多