2012-07-18 61 views
0

我是Qt的新手。如何將控制權轉移回以前的表單?

我在做一個使用Qt Creator的項目。在我的項目中,我有一個主窗口。在主窗口中,我啓動了4個屏幕(一個接一個地顯示初始化過程)。如果任何屏幕上有任何錯誤,將打開一個新的QDialog屏幕。我的錯誤屏幕有兩個按鈕(重試,繼續)。如果我按重試,我必須重新啓動初始化過程。 例如;

void ErrorScreen1::on_Retry_pressed() 
{ 
    Screen1 *scrn = new Screen1(this); 
    scrn->show(); 
    this->close(); 
} 

在上面的示例中,它重新啓動該過程。

有什麼辦法,我可以從它剩下的點開始初始化過程嗎?

由於提前,

回答

0

我通過使用QMessageBox作爲我的錯誤窗口解決了這個問題。

它讓我從我離開的那一刻開始我的過程。

void Screen1::ErrorMessage() 
{ 
    timer->stop(); 

    QMessageBox *msgbox = new QMessageBox(this); 
    msgbox->setWindowTitle("ERROR MESSAGE"); 
    msgbox->setText("Initialization Failed."); 
    msgbox->setStandardButtons(QMessageBox::Cancel | QMessageBox::Retry); 
    msgbox->setDefaultButton(QMessageBox::Retry); 

    int ret = msgbox->exec(); 

    switch (ret) 
    { 
     case QMessageBox::Retry: timer->start(); break; 

     case QMessageBox::Cancel: 
      timer->disconnect(); 
      ui->progressBar->setValue(0); 
      break; 

     default: break; 

    } 
} 
1

在共同你應該以某種方式讓你的過程的當前狀態,然後你可以將其還原。

+0

Thanks hank, 這意味着我需要使用標誌來監視狀態。 我想知道,如果Qt有這樣做的內置邏輯。 謝謝 – skg 2012-07-18 06:39:40

0

你有沒有考慮通過四個步驟將這四個對話框變成一個嚮導?下一個按鈕可以繼續工作,並且每個頁面上都可以有一個重試按鈕,只要該頁面執行必要的重試邏輯即可。

+0

謝謝Caleb, 我有4個屏幕有其4錯誤屏幕的初始化過程。錯誤屏幕有2個按鈕「重試」和「繼續」。我希望如果RETRY被按下,它應該從它剩下的狀態開始。 是的,我試着製作4個嚮導,但是我還沒有得到任何完美的邏輯來做到這一點。 – skg 2012-07-18 23:49:21

相關問題