0

再起動ボタンを配置したいQtアプリケーションがありますが、再起動すると、Bluetoothデバイスに自動的に再接続します。これが私のコードです:

// Restart app
void gui::restartapp()
{
    int index_combo;

    index_combo= ui->devices_infile->currentIndex();

    QProcess::startDetached(QApplication::applicationFilePath());
    QCoreApplication::exit()

    char *dest;
    dest = addr_infile[index_combo];

    sock = linkup_directmain(dest, sock);

    if (sock != 0 && sock >0)
    {
        ui->console_1->setText("Connected to:");
        ui->console_2->setText(name_infile[index_combo]);
    }

    else if (sock == -1)
    {
        ui->console_1->setText("Error connecting");
        ui->console_2->setText("Check device status");
    }
}

ただし、再起動するだけです。何か案が?

前もって感謝します。

アップデート:

私はそれを機能させました。他の誰かがそれを必要とする場合に備えて、後で公開します。

4

2 に答える 2

1

QCoreApplication::exit()アプリに終了を指示するだけです。後のコードexit()は、呼び出されたのと同じアプリケーション インスタンスで実行されますrestartapp()。アプリの他のインスタンスは単純に開始されます。設定をどこかに保存し、アプリケーションの起動時にロードする必要があります。

于 2013-03-13T16:14:30.770 に答える
1
// Restart app
void gui::restartapp()
{
    close_s(sock);

    last_session = true;

    settings.setValue("deviceid", ui->devices_infile->currentIndex());
    settings.setValue("lastsession", last_session);

    QProcess::startDetached(QApplication::applicationFilePath());
    QCoreApplication::exit();
}
于 2013-03-15T11:31:13.340 に答える