文章为个人创作,如转载请标注。

当我们执行一个超过30s的动作的时候,int msecs = 30000,那么就会直接finish,像遇到解压文件这种情况并且要等finish时候用解压的文件的时候,就会出现问题。

QString sCommandLine = "your command line";
QProcess p;
p.start(sCommandLine);
p.waitForStarted();  
p.waitForFinished();      //此处其实是有一个缺省参数的, int msecs = 30000 此处也可能会遇到坑
p.close();

如何解决

QString sCommandLine = "your command line";
QProcess p;
p.start(sCommandLine);
p.waitForStarted(-1);  
p.waitForFinished(-1);      //-1的意思就是等待你的事件真的结束
p.close();

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐