我有一个按钮,后面跟着一个充满小部件的QGridLayout。我想在每次单击按钮时显示/隐藏QGridLayout,但阅读QGridLayout文档时,我发现没有show()/hide()实现,也没有可用的setVisible()方法。
我该如何实现这一点?
发布于 2010-03-03 21:42:01
您没有提到您使用的是哪个版本的Qt。(我正在看4.4 documentation。)
我还没有尝试过,但这里有两个想法:
QGridLayout继承了函数QLayoutItem::widget()。如果您的布局是微件,这将返回一个QWidget*,您可以在其中调用show()或hide().QGridLayout不是QWidget,您可以将其嵌套在QWidget中,并且您可以show() / hide()该微件。发布于 2010-03-03 22:48:16
布局只影响添加到它们的小部件的大小/位置-对于可见性(以及其他任何事情-事件处理、焦点、enable+disable),如上所述,您关心父小部件。parentWidget()提供拥有布局的小部件,然后可以显示和隐藏该小部件。
发布于 2010-03-04 00:14:29
我假设您有多个QGridLayout实例,根据所单击的按钮,应该只有一个实例是可见的。您可以使用QStackedWidget来执行以下操作:
QStackedWidget类提供了一堆小部件,其中一次只有一个小部件可见。
然后,您应该为QStackedWidget中的每个小部件关联一个单独的QGridLayout。
有关更多详细信息,请参阅Qt documentation
https://stackoverflow.com/questions/2370557
复制相似问题