【发布时间】:2017-12-27 09:55:52
【问题描述】:
在 Qt 框架中,我们应该能够使用 QProcess 打开另一个 .exe。当我单击按钮并调用回调时,以下内容不起作用:
void MainWindow::on_pushButton_clicked()
{
QProcess *process = new QProcess(this);
QString wordPath = "C:/Program Files/Internet Explorer/iexplore.exe";
process->start(wordPath);
}
但是,如果我将 process->start(wordPath) 更改为:
process->start(wordPath, QStringList());
这是同一函数的重载,它可以工作。第二个参数应该是传递给您要启动的新进程的参数。我可以使单参数版本工作的唯一方法似乎是我的 PATH 变量中有什么东西,因为“explorer.exe”和“msconfig”都可以工作。仅使用第二个 QStringList()(它只是一个空列表)背后的故事是什么?
在另一个 SO 问题中,我看到一个用户专门添加了一个空字符串,如下所示:
QString wordPath = "C:\\Program Files\\Microsoft Office\\Office12\\WINWORD.EXE"
process->start(wordPath, QStringList() << "");
我很想知道这背后的原因。
【问题讨论】: