Maya workspaceControl 'uiScript' 未更新为新功能
Maya workspaceControl 'uiScript' does not update to new function
我正在 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()"
它仍然打印出来
test 1
我试过手动关闭 workspaceControl。
我还尝试使用以下代码的各种组合:
cmds.deleteUI(dockName)
cmds.workspaceControl(dockName, edit=True, close=True)
即使关闭 Maya 并重新启动它也不能解决问题,它仍然会调用 test1()
它只会在我更改 'dockName' 时更新。这告诉我 Maya 将 UIScript 存储在内部某处,我已经完成了我的所有偏好,但无法在任何地方找到对它的引用。有谁知道如何解决这个问题,而无需每次我想尝试不同的东西时都不断地重命名扩展坞?
谢谢
我从来没有使用过这个命令,而且我已经有几周没有使用 Maya 了。
请注意,命令标志并不意味着有字符串:
mywcctrl = cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript=test1)
你应该可以修改它:
cmds.workspaceControl(mywcctrl , edit = True, uiScript=test2)
否则,在 maya pref 中,它会使用布局 pref、window 和其他一些东西保存您的场景文件,因此如果您关闭 maya 并重新打开它可能会导致问题:
Window > Settings/Preferences > Preferences > UI Elements
只是为了将来清楚我发现的工作。命令标志是一个字符串,否则不起作用。因此,将其与 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()")
我正在 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()"
它仍然打印出来
test 1
我试过手动关闭 workspaceControl。 我还尝试使用以下代码的各种组合:
cmds.deleteUI(dockName)
cmds.workspaceControl(dockName, edit=True, close=True)
即使关闭 Maya 并重新启动它也不能解决问题,它仍然会调用 test1()
它只会在我更改 'dockName' 时更新。这告诉我 Maya 将 UIScript 存储在内部某处,我已经完成了我的所有偏好,但无法在任何地方找到对它的引用。有谁知道如何解决这个问题,而无需每次我想尝试不同的东西时都不断地重命名扩展坞?
谢谢
我从来没有使用过这个命令,而且我已经有几周没有使用 Maya 了。 请注意,命令标志并不意味着有字符串:
mywcctrl = cmds.workspaceControl(dockName, retain=False, floating=True, l='My Dock Test', uiScript=test1)
你应该可以修改它:
cmds.workspaceControl(mywcctrl , edit = True, uiScript=test2)
否则,在 maya pref 中,它会使用布局 pref、window 和其他一些东西保存您的场景文件,因此如果您关闭 maya 并重新打开它可能会导致问题:
Window > Settings/Preferences > Preferences > UI Elements
只是为了将来清楚我发现的工作。命令标志是一个字符串,否则不起作用。因此,将其与 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()")