在Qt中如何移除子布局?

3
在PyQt 4.5中,我有一个布局嵌套在另一个布局中。我想从其父布局中移除子布局并隐藏它。我可以使用parent_layout.removeItem(child_layout)从父布局中删除布局,但它仍然显示在小部件上。我找不到任何一步隐藏它的方法,因为QLayout没有像QWidget那样的hide()方法。
2个回答

4

简单的解决方案是使用内部小部件而不是内部布局。您可以将所需的布局分配给小部件,然后在需要时仅删除/隐藏小部件即可。一个好的经验法则是,如果您只想安排小部件的外观,则使用布局;如果您想要作为一组隐藏/显示它们,则使用小部件。


1

#qt 里得到了 flupke 的帮助后,我想出了以下代码:

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

假设所有子布局的子项都是小部件。有更简单的解决办法吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接