QT QProcess内存管理

bhu*_*der 2 qt memory-management

如果我在我的程序中使用它来启动ffmpeg命令.

QProcess *cmd1 = new QProcess();

cmd1->start(ffmpeg command);

if (!cmd1->waitForStarted())
    return false;

if (!cmd1->waitForFinished())
return false;
Run Code Online (Sandbox Code Playgroud)

然后在整理过程中将内存从堆中释放出来或者我必须使用

删除cmd1.

The*_*ght 5

或者,或者您可以将过程设置为在完成后自行删除: -

// using Qt 5 connect syntax
connect(cmd1, &QProcess::finished, cmd1, &QProcess::deleteLater);
Run Code Online (Sandbox Code Playgroud)

如果传递给QProcess对象的父对象的生命周期可能比QProcess对象所需的寿命长,则这可能是首选方法.