Maya 2018.1 python workspaceControl不记得状态

Posted

技术标签:

【中文标题】Maya 2018.1 python workspaceControl不记得状态【英文标题】:Maya 2018.1 python workspaceControl not remembering State 【发布时间】:2017-10-19 00:14:59 【问题描述】:

我正在尝试在 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 将启动并显示停靠的对话框,但如果您出于任何原因关闭它,它将再次作为浮动窗口重新生成.

如何让它记住它的停靠状态?

【问题讨论】:

我可以确认我遇到了同样的问题。它在第一次打开时停靠,但在关闭后仅作为浮动窗口打开。 嘿,绿色单元格,我发现一个解决方案是使用工作区的选项按钮(Windows > 布局>(工作区名称)> []" 并关闭来保存当前工作区的工具状态“自动保存工作区布局”。将您的布局与停靠的工具一起保存,并在关闭后重新启动时记住。 【参考方案1】:

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

如果有人知道我可以在我自己的关闭例程中调用什么来恢复该功能,我很想知道。

还有其他问题,但这取决于 Autodesk 的实施,除了文件错误,我无能为力。

【讨论】:

以上是关于Maya 2018.1 python workspaceControl不记得状态的主要内容,如果未能解决你的问题,请参考以下文章

python [Maya Python]添加vectorArray属性

python Maya Python回调

Maya:如何使用 python 导入 fbx?

python 使用Python的Autodesk Maya热键

从 Maya 发送并执行 maxscript 或 python 到 3ds Max

Maya python FBX导出?