我正在研究这个,但我没有看到一个确凿的答案。Qt 小部件应用程序在退出时是否会清理内存?从 QObject 派生有什么不同吗?如果有垃圾收集,为什么会有QSharedPointer
类?我从我的代码的以下上下文中询问。
void MainWindow::sync()
{
QString destPathUnixStyle = makePathUnix( _RootPath );
QString rsync_cmd = QString("rsync/rsync -a root@%1:/data/ '%2'").arg( _ip ).arg( destPathUnixStyle );
QProcess *syncProcess = new QProcess(this);
syncProcess->start( rsync_cmd );
qDebug() << "Sync started..";
connect(syncProcess, SIGNAL(finished(int)), this, SLOT(syncFinished()) );
_syncInProgress = true;
}
现在我syncProcess
会在应用程序退出时被清理吗?如果用户在不退出的情况下调用此函数一千次,会造成内存泄漏吗?
更新
鉴于我上面的函数经常被多次调用,是声明QProcess
一个成员变量更好还是仅仅用于QSharedPointer
改进上面的代码?