我開始在類的成員函數QProcess
QProcess
但該對象(下面的Pdf對象)很快會在創建過程後被銷燬。我顯然希望在QProcess完成時插槽函數可用並被調用。我通過QProcess
指針,所以當它結束時,它也會破壞它。但實際上它在完成時並不真正被破壞。如何摧毀QProcess,當它完成和類比插槽
void PDf::createPDF()
{
PdfSymlink * pdfSymlink = new PdfSymlink(fileName, linkName, myProcess);
connect(myProcess, SIGNAL(finished(int)), pdfSymlink, SLOT(createPdfLink(int)));
myProcess->start("sh",args); // args is defined now shown in code
}
這是一個重複的代碼被稱爲很多很多timesI希望當它完成了QProcess中得到破壞,同樣pdfSymlink應該被銷燬。我怎樣才能做到這一點?
請注意我的插槽沒有被調用,它做的工作,但我想確保我清理後,此對象。
這沒有工作,我想'deleteLater'是不像宣傳的那樣。它實際上會在QProcess完成之前銷燬錯誤消息「QProcess:銷燬進程(」sh「)仍在運行時。」如果我刪除了'deleteLater'調用,則我的QProcess會完成並生成輸出。 – zar
當我回家時,我會嘗試一些東西,也許「完成」不是最好的信號使用。 – dsonck92
謝謝,我有一個正在工作的解決方案,我想我會張貼,所以它可能會幫助其他人,但如果你知道更好,讓我知道 – zar