在Qt中切换布局

时间:2013-03-04 18:24:09

标签: qt layout qt4

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

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

2 个答案:

答案 0 :(得分:2)

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,这就是我使用的。

答案 1 :(得分:0)

你应该使用QStackedLayout或QStackedWidget。