我有2个布局 - layout1
和layout2
。假设两者在其中的小部件类型数量方面完全不同。现在我有2个按钮but1
和but2
。当but1
被阻止时,layout1
被激活,当点击but2
时,layout2
被激活。
我怎样才能在Qt中实现这一目标?
注意: 我不想删除我的小部件(或布局)
答案 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。