如何完全隐藏QGridLayout?

Raú*_*ràs 9 c++ qt

我有一个按钮,后面是一个QGridLayout完整的小部件.我想QGridLayout在每次点击按钮时显示/隐藏,但阅读文档QGridLayout我看到没有show()/ hide()实现,也没有setVisible()可用的方法.

我该如何实现这一目标?

Jam*_*ner 7

布局仅影响添加到它们的窗口小部件的大小/位置 - 用于关注父窗口小部件的可见性(以及其他任何事件 - 事件处理,焦点,启用+禁用),如上所述.QLayout :: parentWidget()为您提供拥有布局的小部件,然后您可以显示和隐藏该小部件.


Bil*_*ill 6

你没有提到你正在使用的Qt版本.(我正在查看4.4文档.)

我没有试过这个,但这里有两个想法:

  • QGridLayout继承了这个功能QLayoutItem::widget().如果你的布局是一个小部件,这将返回QWidget*你可以调用的show()hide().
  • 如果你QGridLayout不是a QWidget,你可以将它嵌套在a中QWidget,而你可以show()/ hide()那个widget.