我有以下代码:
proc = new QProcess();
proc->startDetached("C:\\ffmpeg.exe", QStringList() <<"-i"<< "C:\\pics\\frame%d.png"<< "-r"<< "30" << "-vcodec"<< "ffv1" << "C:\\test.avi" );
connect(proc,SIGNAL(finished(int)),this,SLOT(finishedFFMPEG(int)));
由于某种原因,完成()和完成()的SIGNAL永远不会被调用。正确创建了test.avi文件。
我在这里缺少什么?
答案 0 :(得分:0)
应该是这样或使用@:
proc = new QProcess();
proc->startDetached("C:\\ffmpeg.exe", QStringList() <<"-i"<< "C:\\pics\\frame%d.png "<< "-r"<< "30" << "-vcodec"<< "ffv1" << "C:\\test.avi" );
connect(proc,SIGNAL(finished(int)),this,SLOT(finishedFFMPEG(int)));
答案 1 :(得分:0)
QProcess::startDetached
是一个静态函数。它对QProcess
的实例没有影响。
请改用QProcess::start
。
"C:\pics\frame%d.png"
中的反斜杠也应该被转义,甚至更好地使用斜杠("C:/pics/frame%d.png"
)或C ++ 11原始文字(R"(C:\pics\frame%d.png)"
)。