2009-12-04 44 views
3

在PyQt 4.5中,我有另一种布局内的布局。我想从其父项中删除子布局,并隐藏它。我可以说parent_layout.removeItem(child_layout)从其父级移除布局,但它仍显示在小部件上。我无法找到任何方法来一步隐藏它,因为QLayout没有像QWidget这样的hide()方法。在qt中删除一个子布局?

回答

4

简单的解决方案是拥有一个内部小部件,而不是内部布局。您可以将想要的布局分配给小部件,然后在您想要的时候移除/隐藏小部件。一个好的经验法则是,如果你只想安排小部件的显示方式,那么就使用布局;如果你想隐藏/显示他们作为一个组,使用一个小部件。

1

与flupke一些帮助上#qt,我想出了:

for i in range(0, child_layout.count()): 
    child_layout.itemAt(i).widget().hide() 
parent_layout.removeItem(child_layout) 

即假设所有的子布局的孩子是小部件。有一个更简单的解决方案吗?