qstackkedwidget是在Qt程序中处理多个窗口的推荐方法

Is QStackedWidget is the recommended way to handle multiple windows in Qt Program?

本文关键字:窗口 方法 Qt 是在 程序 处理 qstackkedwidget      更新时间:2023-10-16

我构建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);
}

我认为这很好,但也许你可以简化你的代码,如果你只创建一个插槽,并检查其中的sender()

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

或者您可以直接使用QTabWidget