我是Qt的新手。
我正在使用Qt Creator做一个项目。在我的项目中,我有一个mainWindow。从主窗口我开始4个屏幕(一个接一个,显示初始化过程)。如果任何屏幕上有任何错误,则会打开一个新的QDialog屏幕。我的错误屏幕有两个按钮(重试,继续)。如果我按重试,我必须重新启动初始化过程。 例如;
void ErrorScreen1::on_Retry_pressed()
{
Screen1 *scrn = new Screen1(this);
scrn->show();
this->close();
}
在上面的示例中,它会重新启动该过程。
有什么办法,我可以从它离开的那一刻开始初始化过程吗?
提前致谢,
答案 0 :(得分:1)
一般来说,你应该以某种方式保持你的进程的当前状态,然后你可以恢复它。
答案 1 :(得分:0)
您是否考虑将这四个对话框分成四个步骤的向导?下一个按钮可以用于继续,你可以在每个页面上有一个有意义的重试按钮,只需要那个页面执行必要的重试逻辑。
答案 2 :(得分: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;
}
}