QStackedWidget是Qt程序中处理多个窗口的推荐方法吗?

时间:2015-07-09 21:23:33

标签: c++ qt

我构建Qt gui并有许多窗口可以处理。 我用QStackedWidget s同时实现了这个(用按钮点击信号替换窗口),但我不确定这是正确的方法。

我可以在这种技术中保留很多窗口吗?

首选方式/最佳做法是什么?

这是我的代码(相关):

ui->pagesWidget->addWidget(new Menu);
ui->pagesWidget->addWidget(new Repetitive);
ui->pagesWidget->addWidget(new SinglePulse);


void MainWindow::on_btnSinglePulse_clicked()
{
  ui->pagesWidget->setCurrentIndex(1);
}

void MainWindow::on_btnMenu_clicked()
{
  ui->pagesWidget->setCurrentIndex(0);
}

void MainWindow::on_btnPulseGroup_clicked()
{
  ui->pagesWidget->setCurrentIndex(2);
}

1 个答案:

答案 0 :(得分:1)

我认为没问题,但如果您只创建一个广告位,也许可以简化代码,并检查其中的sender()

void onButtonClicked()
{
    if ( sender() == ui->button0 )
    {
        ui->pagesWidget->setCurrentIndex( 0 );
    }
    else if ( sender() == ui->button1 )
    {
        ui->pagesWidget->setCurrentIndex( 1 );
    }
    // ... and so on.
}

或者您只需使用QTabWidget