0

我正在尝试使用组合框来控制多个页面。我已经通过编码创建了一些自定义小部件,也QFrame以小部件形式创建了一些。但我似乎找不到任何解决方案来解决这个问题。我曾尝试使用Qstackwidget,但程序在此过程中交出。

stackedWidget = new QStackedWidget;
parentLayout1 = new QWidget;
parentLayout2 = new QWidget;
layout1 = new QGridLayout(parentLayout1);
layout2 = new QGridLayout(parentLayout2);

//Default layout to be linearity
layout1->addWidget(ui->TimeL, 0,1);
layout1->addWidget(ui->FreqL, 0,7);
layout1->addWidget(time1, 1,1,3,4);
layout1->addWidget(ui->PlusL, 4,3);
layout1->addWidget(time2, 5,1,3,4);
layout1->addWidget(ui->EqualL, 8,3);
layout1->addWidget(time3, 9,1,3,4);
layout1->addWidget(freq1, 1,7,3,4);
layout1->addWidget(ui->PlusL2, 4,9);
layout1->addWidget(freq2, 5,7,3,4);
layout1->addWidget(ui->EqualL2, 8,9);
layout1->addWidget(freq3, 9,7,3,4);
layout1->addWidget(ui->ProFrame,0,15,3,2);
layout1->addWidget(ui->InfoFrame,10,15,2,2);
layout1->addWidget(ui->LinearFrame,3,15,7,2);
stackedWidget->widget(1)->show();

你能帮我解决这个问题吗?请注意,我的表单中有多个 Qframe。但是当我只想显示 1 个 qframe 时,我似乎无法隐藏它们。

4

1 回答 1

1

您有parentLayout1parentLayout2从未将它们添加到堆叠的小部件并尝试访问第二个小部件 ( stackedWidget->widget(1))。在该行之前添加这个。

stackedWidget->addWidget(parentLayout1);
stackedWidget->addWidget(parentLayout2);

此外,您还没有向第二个布局添加任何内容layout2

于 2015-09-29T17:01:17.073 回答