在PyQt 4.5中,我在另一个布局中有一个布局。我想从其父级中删除子布局,并将其隐藏。我可以说parent_layout.removeItem(child_layout)
从父节点中删除布局,但它仍然显示在小部件上。我找不到任何方法可以一步隐藏它,因为QLayout
没有像hide()
这样的QWidget
方法。
答案 0 :(得分:4)
简单的解决方案是拥有一个内部小部件,而不是内部布局。您可以将所需的布局分配给窗口小部件,然后在需要时删除/隐藏窗口小部件。一个好的经验法则是,如果您只想安排小部件的显示方式,那么请使用布局;如果你想隐藏/显示它们作为一个组,请使用一个小部件。
答案 1 :(得分:1)
在#qt
的flupke的帮助下,我提出了:
for i in range(0, child_layout.count()):
child_layout.itemAt(i).widget().hide()
parent_layout.removeItem(child_layout)
假设所有子布局的子项都是小部件。有更简单的解决方案吗?