2015-07-09 13 views
1

Я строю Qt gui и имею много окон для обработки. Я реализую это между тем с QStackedWidget s (замените окно в сигнале нажатия кнопок), но я не уверен, что это правильный путь.QStackedWidget - рекомендуемый способ обработки нескольких окон в Qt Program?

Могу ли я поддерживать много окон в этой технике?

Каков предпочтительный способ/передовая практика?

Это часть моего кода (соответствующего):

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

Я думаю, что это хорошо, но, может быть, вы могли бы упростить код, если вы создаете только один слот и проверьте sender() в этом.

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

Или вы можете просто использовать QTabWidget.