2017-10-19 83 views
1

我正在尝试在Maya 2018.1中使用workspaceControl,并且在其中没有记住它是最后的位置。我可以用手找出原因。Maya 2018.1 python workspaceControl不记得状态

将这个脚本中的文件夹BBTest.py:

# BBTest.py 
import pymel.core as pm 

WorkspaceName = 'WorkspaceWinBoo' 

class BBTest(object): 
    def StartUI(self): 
     if pm.workspaceControl(WorkspaceName, query=True, exists=True) is False: 
      pm.workspaceControl(WorkspaceName, uiScript = 'from BBTest import curUI\ncurUI.buildUI()', closeCommand='from BBTest import curUI\ncurUI.CloseUI()') 
     else: 
      pm.workspaceControl(WorkspaceName, edit=True, restore=True) 

    def CloseUI(self): 
     if pm.workspaceControl(WorkspaceName, query=True, exists=True): 
      pm.workspaceControl(WorkspaceName, edit=True, close=True) 


    def buildUI(self): 
     WinLayout = pm.columnLayout(adjustableColumn=True) 
     pm.button(label='Do Nothing') 
     pm.button(label='Close', command=pm.Callback(self.CloseUI)) 

curUI = BBTest() 

和产卵/在你的脚本编辑器或作为一个Python货架按钮使用这种方式进行恢复:

import BBTest 
BBTest.curUI.StartUI() 

这将产生一个小小的可停靠窗口。如果将它移动并停靠,然后关闭它(通过任何方式),它将不会记住它停靠的位置。它确实记得尺寸的变化。

如果您停靠它并退出Maya(在当前工作空间中启用“自动保存工作空间”),Maya将启动并显示停靠的对话框,但如果因任何原因关闭它,它将重新生成浮动窗口再次。

我该如何去记住它是码头状态?

+0

我可以证实我有同样的问题。它在第一次打开时停靠,但在关闭后它仅作为浮动窗口打开。 –

+0

Hey Green Cell,我发现一个解决方案是通过使用工作区的选项按钮(Windows>布局>(工作区的名称)> []“并关闭”自动保存工作区布局“来保存当前工作区的工具状态。使用停靠的工具保存布局,并在关闭后重新启动时记住它。 –

回答

0

所以通过更正式的测试,我发现使用“closeCommand”可以防止workspaceControl记住状态。

如果有人知道我可以在我自己的例行程序中调用以恢复该功能,我很想知道。

还有其他问题,但这取决于Autodesk的实施,除了文件错误之外,我无法做到这一点。