Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何刷新Maya cmds.gridLayout?_Python_Refresh_Maya - Fatal编程技术网

Python 如何刷新Maya cmds.gridLayout?

Python 如何刷新Maya cmds.gridLayout?,python,refresh,maya,Python,Refresh,Maya,Maya cmds:我有一个基本网格,我想删除一个项目,但网格不更新。因此,删除的项目继续占用空间。如何使gridLayout刷新或重新对齐其项 import maya.cmds as cmds def change(*args): cmds.iconTextCheckBox('two', edit=True, visible=False) window = cmds.window() cmds.gridLayout() cmds.iconTextCheckBox('one', s

Maya cmds:我有一个基本网格,我想删除一个项目,但网格不更新。因此,删除的项目继续占用空间。如何使gridLayout刷新或重新对齐其项

import maya.cmds as cmds

def change(*args):
    cmds.iconTextCheckBox('two', edit=True, visible=False)

window = cmds.window()
cmds.gridLayout()

cmds.iconTextCheckBox('one', style='textOnly', label='item')
cmds.iconTextCheckBox('two', style='textOnly', label='item')
cmds.iconTextCheckBox('three', style='textOnly', label='item')

cmds.button(label='GO', command=change)
cmds.showWindow(window)

执行代码时,不删除第二个元素,只是关闭了它的可见性

要检查此语句,请执行以下代码行,然后打开可见性:

cmds.iconTextCheckBox('two', edit=True, visible=True)

解决方案 您需要使用QT的类(而不是Maya的cmds)。
要从布局中删除小部件,请调用
removeWidget()
方法。

如果我记得很清楚,您不是在删除该项,而是使其不可见。理论上,您必须使用QT方法removeWidget或removeItem从布局中删除小部件/项,您还可以删除小部件或使用模型方法填充它。在这里使用maya.cmds时,您可能需要每次重新创建网格。是的,每次重新创建网格是目前唯一有效的方法。但我的清单上有1500多个项目。因此,即使只想删除10个网格,也需要删除并重新创建网格。这显然很可怕。所以我希望有人能给我一个更好的解决方案:)但也谢谢你的投入!你是说我不能使用
cmds.gridLayout()
?因为似乎没有类似于
cmds.gridLayout().removeWidget()
的东西。我还没有找到任何用于常规cmds
小部件的方法。但我可能错了。谢谢你的回答!我会投赞成票,但不幸的是,它并没有真正回答我的问题。不过,它提供了一个很好的解决方法。非常感谢。我仍在尝试使用常规的
cmds
方法解决此问题)