使用上一个属性重新启动应用程序

时间:2013-03-13 14:58:42

标签: c++ qt

我有一个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");
    }
}

但它只会重新启动。任何想法?

提前谢谢。

更新:

我得到了它的工作。我会稍后发布它以防其他人需要它。

2 个答案:

答案 0 :(得分:1)

QCoreApplication::exit()仅告诉应用退出。 exit()之后的代码在调用restartapp()的同一应用程序实例中执行。该应用程序的另一个实例只是启动。 您应该将设置存储在某处,然后在应用程序启动时加载它们。

答案 1 :(得分: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();
}