0

我是 Qt 的新手。

我正在使用 Qt Creator 做一个项目。在我的项目中,我有一个主窗口。我从主窗口开始 4 个屏幕(一个接一个,显示初始化过程)。如果任何屏幕上有任何错误,则会打开一个新的 QDialog 屏幕。我的错误屏幕有两个按钮(重试,继续)。如果我按下重试,我必须重新开始初始化过程。例如;

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

在上面的示例中,它重新启动了该过程。

有什么办法,我可以从它离开的地方开始初始化过程吗?

提前致谢,

4

3 回答 3

1

通常,您应该以某种方式保持进程的当前状态,然后您可以恢复它。

于 2012-07-18T06:07:54.583 回答
0

您是否考虑过将这四个对话框变成一个具有四个步骤的向导?下一个按钮可以用于继续,并且您可以在每个有意义的页面上都有一个重试按钮,只有该页面执行必要的重试逻辑。

于 2012-07-18T18:29:33.477 回答
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;

    }
}
于 2012-07-18T23:49:52.297 回答