删除qt中的子布局?

发布于 2024-08-14 02:44:30 字数 222 浏览 2 评论 0原文

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

In PyQt 4.5, I have a layout inside another layout. I'd like to remove the sublayout from its parent, and hide it. I can say parent_layout.removeItem(child_layout) to remove the layout from its parent, but it still shows on the widget. I can't find any way to hide it in one step, as QLayout doesn't have a hide() method like QWidget does.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沫尐诺 2024-08-21 02:44:30

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

The easy solution would be to have an interior widget, not an interior layout. You could assign the layout you desire to the widget, then just remove/hide the widget when you want to do so. A good rule of thumb is if you just want to arrange how widgets appear, then use a layout; if you want to hide/show them as a group, use a widget.

金橙橙 2024-08-21 02:44:30

在 flupke 对 #qt 的帮助下,我想出了:

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

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

With some help from flupke on #qt, I came up with:

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

Which assumes all the child layout's children are widgets. Is there a simpler solution?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文