我有一个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");
}
}
但它只会重新启动。任何想法?
提前谢谢。
更新:
我得到了它的工作。我会稍后发布它以防其他人需要它。
答案 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();
}