Python 如何刷新Maya cmds.gridLayout?
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
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
方法解决此问题)