2

我有 2 个布局 -layout1layout2. 假设两者在其中的小部件类型数量方面完全不同。现在我有 2 个按钮but1but2. 什么时候but1被点击被layout1激活,什么时候but2被点击layout2被激活。我怎样才能在 Qt 中实现这一点?

注意: 我不想删除我的小部件(或布局)

4

2 回答 2

3
QStackedWidget* stackedWidget = new QStackedWidget;
QWidget* parentLayout1 = new QWidget;
QWidget* parentLayout2 = new QWidget;
QGridLayout* layout1 = new QGridLayout(parentLayout1);
QGridLayout* layout2 = new QGridLayout(parentLayout2);
stackedWidget->addWidget(parentLayout1);
stackedWidget->addWidget(parentLayout2);
stackedWidget->widget(1)->show();

然后根据需要隐藏并显示它们,我自己尝试了 QStackedLayout 来解决这个问题,但我无法让它工作,但上述解决方案应该可以正常工作。我在我目前正在处理的一个项目中使用它,切换小部件的性能可能与 QStackedLayout 相同。显然我给你的是代码的基本内容,但这应该对你有所帮助。任何后续问题让我知道。您也可以使用您想要的任何类型的布局,不必是 QGridLayout,这正是我使用的。

于 2013-03-04T20:45:19.447 回答
0

为此,您应该使用 QStackedLayout 或 QStackedWidget。

于 2013-03-04T19:17:54.780 回答