【问题标题】:Maya Python windowPref command doesn't change window width, but says it doesMaya Python windowPref命令不会改变窗口宽度,但说它会
【发布时间】:2015-10-11 03:57:31
【问题描述】:

我正在尝试设置非主 Maya 窗口(超图等)的宽度。

但该命令实际上并没有移动它。它返回它确实......这真的很奇怪。有谁知道怎么回事?

openWindows = cmds.lsUI(windows=True)

for i, window in enumerate(openWindows):
    if window != "MayaWindow":

        widthQueryPre = cmds.windowPref(window, q=True, w=True)

        cmds.windowPref(window, e=True, w=200) # Why doesn't this change the window's width?

        widthQueryPost = cmds.windowPref(window, q=True, w=True)

        print i, window, widthQueryPre, widthQueryPost

【问题讨论】:

    标签: python user-interface window maya


    【解决方案1】:

    根据Maya 2014 documentation(我正在使用的版本):

    创建或修改首选窗口属性。大小和位置 在应用程序会话期间和之间保留一个窗口。一种 在关闭窗口时创建默认窗口首选项。窗户 首选项必须被命名,因此,只影响窗口 具有匹配的名称。

    这意味着您使用windowPref 命令更改的值不是窗口的实际大小,而是默认大小。但是,当您关闭子窗口时也会调用此命令。并将覆盖您之前对windowPref 的调用。 一旦您的子窗口关闭,您必须致电windowPref。然后下次打开子窗口时,它将是 200px 宽度。

    总结:此命令不会调整当前子窗口的大小,但将其设置为默认大小

    如果要调整当前窗口的大小,请使用window 命令。

    for win in cmds.lsUI(type="window"): #Lists all windows (including Pyside/PyQT ones)
        if win != "MayaWindow" and cmds.window(win, query=True, exists=True): #cmds.window(win, query=True, exists=True) checks if the windows really exists (do it, this can be useful)
            cmds.window( win, edit=True, widthHeight=(900, 777) ) #the actual command to resie the windows
    

    【讨论】:

    • 太好了,谢谢你的解释和例子!在 2016 年也表现出色。
    猜你喜欢
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2012-05-27
    相关资源
    最近更新 更多