QStackedWidget添加,切换及删除窗口
QStackedWidget可以实现同一界面切换不同的窗口,直接切换就可以显示不同子窗口的内容,可用于创建类似于QTabWidget提供的用户界面。
添加窗口
QLabel *pFirstPage= new QLabel(this);
QLabel *pSecondPage = new QLabel(this);
QLabel *pThirdPage = new QLabel(this);
pFirstPage->setText(QStringLiteral("第一页"));
pSecondPage->setText(QStringLiteral("第二页"));
pThirdPage->setText(QStringLiteral("第三页"));
myfrm1 = new Form1(this);
myfrm2 = new Form2(this);
ui->m_pStackedWidget->addWidget(myfrm1);
ui->m_pStackedWidget->addWidget(myfrm2);
ui->m_pStackedWidget->addWidget(pFirstPage);
ui->m_pStackedWidget->addWidget(pSecondPage);
ui->m_pStackedWidget->addWidget(pThirdPage);
切换方法:
ui->stackedWidget->setCurrentWidget(pThirdPage);
ui->m_pStackedWidget->setCurrentWidget(myfrm1);
ui->stackedWidget->setCurrentIndex(1);
删除所有窗口
for(int i = ui->m_pStackedWidget->count(); i >= 0; i--)
{
QWidget* widget = ui->m_pStackedWidget->widget(i);
ui->m_pStackedWidget->removeWidget(widget);
widget->deleteLater();
}
备注:实战示例,解疑答惑。
--不间端地思考,实时地批判你的工作!