Maya 2018.1 python workspaceControl不记得状态
问题描述:
我正在尝试在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将启动并显示停靠的对话框,但如果因任何原因关闭它,它将重新生成浮动窗口再次。
我该如何去记住它是码头状态?
答
所以通过更正式的测试,我发现使用“closeCommand”可以防止workspaceControl记住状态。
如果有人知道我可以在我自己的例行程序中调用以恢复该功能,我很想知道。
还有其他问题,但这取决于Autodesk的实施,除了文件错误之外,我无法做到这一点。
我可以证实我有同样的问题。它在第一次打开时停靠,但在关闭后它仅作为浮动窗口打开。 –
Hey Green Cell,我发现一个解决方案是通过使用工作区的选项按钮(Windows>布局>(工作区的名称)> []“并关闭”自动保存工作区布局“来保存当前工作区的工具状态。使用停靠的工具保存布局,并在关闭后重新启动时记住它。 –