0

私はQtが初めてです。

Qt Creator を使用してプロジェクトを行っています。私のプロジェクトには、mainWindow が 1 つあります。メイン ウィンドウから 4 つの画面を開始します (次々と、初期化プロセスを示します)。いずれかの画面にエラーがある場合、新しい QDialog 画面が開きます。私のエラー画面には 2 つのボタン (再試行、続行) があります。[再試行] を押すと、初期化プロセスを最初からやり直す必要があります。例えば;

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

エラーウィンドウとして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 に答える
0

これら 4 つのダイアログを 4 つのステップを持つウィザードにすることを検討しましたか? 次のボタンは続行のために機能し、各ページに意味のある再試行ボタンを配置し、そのページだけが必要な再試行ロジックを実行することができます。

于 2012-07-18T18:29:33.477 に答える