我试图在Maya 2018.1中使用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)
通过更正式的测试,我发现使用" closeCommand"阻止workspaceControl记住状态。
如果有人知道我可以在我自己的关闭程序中调用什么来恢复该功能,我很想知道。
还有其他问题,但这取决于Autodesk的实施,除了文件错误之外,我无法做到这一点。