我是用如下代码进行重启我的qt程序QString program QApplication::applicationFilePath(); QStringList arguments QApplication:arguments(); QString workingDirectory QDir:currentPath(); QProcess:startDetached(program,arguments,workingDirectory); QApplication:exit();但是并没有输出是为什么
时间: 2024-02-23 15:00:35 浏览: 99
Qt重启应用的代码
你使用的代码应该是没有输出的,因为它是在后台启动一个新的进程,而不是在当前进程中执行。如果你想要在启动新进程时输出一些消息,可以使用QProcess类的信号和槽机制,例如:
```
QString program = QApplication::applicationFilePath();
QStringList arguments = QApplication::arguments();
QString workingDirectory = QDir::currentPath();
QProcess* process = new QProcess(this);
connect(process, &QProcess::started, [=]() {
qDebug() << "New process started";
});
connect(process, &QProcess::errorOccurred, [=](QProcess::ProcessError error) {
qDebug() << "Error starting process: " << error;
});
process->startDetached(program, arguments, workingDirectory);
QApplication::exit();
```
在上面的代码中,我们创建了一个新的QProcess对象,并使用connect函数连接了started和errorOccurred信号。启动新进程后,如果没有出现错误,就会输出"New process started",否则就会输出"Error starting process"和错误码。
阅读全文