0

我有一个 Qt 应用程序,我想在其中放置一个重新启动按钮,但是当它重新启动时,我希望它自动重新连接到我的蓝牙设备。这是我的代码:

// 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 回答