比如
QProcess *p = new QProcess;
p->start("d:\a b\test.exe");
因为ab之间有空格, test.exe不会被调用.
网上找了些办法, 比如用p->startDetached("d:\a b\test.exe");
虽然可以调用test.exe, 但无法用p->state()判断test.exe的进程状态, 比如是否正在运行.
最终从外网找到终极解决办法, 简单实用.
先用QDir::setCurrent("d:\a b\test.exe")将当前目录设置到外部执行文件目录
然后直接使用 p->start("test.exe").
必要的话, 再把目录设回来: QDir::setCurrent(QApplication::applicationDirPath())
完毕!
.