【问题标题】:Maya workspaceControl 'uiScript' does not update to new functionMaya workspaceControl 'uiScript' 未更新为新功能
【发布时间】:2019-08-08 04:04:56
【问题描述】:

我正在 Maya 2018.6 中创建一个新的 workspaceControl。

当我将 uiScript 标志更改为指向新函数并重新启动 workspaceControl 时,它仍在调用旧函数。这是我的代码的简单版本:

dockName = 'myNewDock'
def test1():
    print 'test 1'
def test2():
    print 'test 2'    
cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript="test1()")

以上工作正常。但是,当我改变时:

uiScript="test1()"

成为:

uiScript="test2()"

它仍然打印出来

测试 1

我已尝试手动关闭 workspaceControl。 我也尝试过使用以下代码的各种组合:

cmds.deleteUI(dockName)
cmds.workspaceControl(dockName, edit=True, close=True)

即使关闭 Maya 并重新启动它也不能解决问题,它仍然会调用 test1()

只有当我更改“dockName”时它才会更新。这告诉我 Maya 将 UIScript 存储在内部某个地方,我已经完全按照自己的喜好进行操作,但在任何地方都找不到对它的引用。有没有人知道如何解决这个问题,而无需每次我想尝试不同的东西时不断重命名扩展坞?

谢谢

【问题讨论】:

    标签: python maya


    【解决方案1】:

    我从来没有使用过这个命令,而且我已经好几个星期没有使用 Maya 了。 请注意,命令标志并不意味着具有字符串:

    mywcctrl = cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript=test1)
    

    你应该可以修改它:

    cmds.workspaceControl(mywcctrl , edit = True, uiScript=test2)
    

    否则,在 Maya 首选项中,它会将您的场景文件与布局首选项、窗口和其他一些东西一起保存,因此如果您关闭 Maya 并重新打开它可能会导致问题:

    Window > Settings/Preferences > Preferences > UI Elements
    

    【讨论】:

    • 您好 DrWeeny,感谢您的回复。使用编辑标志确实有效。似乎一旦创建了一个停靠栏,它的名字就永远隐藏在 Maya 深处的某个地方,并且只能通过使用编辑标志来更改。
    【解决方案2】:

    只是为了将来清楚我发现的工作。命令标志是一个字符串,否则它不起作用。因此,将其与 DrWeeny 的解决方案相结合:

    # create UI First time round    
    dockName = 'myNewDock'
    def test1():
        print 'test 1'
    def test2():
        print 'test 2'    
    cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript="test1()")
    
    # Delete UI
    cmds.deleteUI(dockName)
    cmds.workspaceControl(dockName, edit=True, close=True)
    
    # edit the command flag
    cmds.workspaceControl(dockName, e=True, uiScript='test2()')
    
    # re launch UI pointing to new function
    cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript="test2()")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多