如何使用QProcess呼叫其它程式或指令碼?

Tags: 指令碼, 程式,

最近負責的專案中與別人一起開發,同事負責寫shell指令碼,然後由APP端呼叫他的指令碼程式。APP是用QT開發的,研究了下決定用QProcess來呼叫shell指令碼,整個開發過程還算順利,現分享一下,希望可以幫到大家。

工具/原料

QT

方法/步驟

首先是要include相關的標頭檔案,這是必不可少的,否則編譯時會報錯。

如何使用QProcess呼叫其它程式或指令碼

在使用外部shell或者程式前判斷該檔案是否存在,如下圖所示。然後才new一個QProcess來呼叫該檔案。

如何使用QProcess呼叫其它程式或指令碼

啟動時可以使用start這個函式,第一個引數就是你的可執行程式或者shell指令碼,第二個是你要傳遞的引數。

如何使用QProcess呼叫其它程式或指令碼

要判斷程式是否啟動可以使用waitForStarted()這個函式,只有在程式啟動後才往下執行。

如何使用QProcess呼叫其它程式或指令碼

下圖中的程式碼主要是等待呼叫的程式或者shell指令碼結束,在判斷結束後可以使用exitCode檢視它返回的程式碼值,通過這個來判斷執行結果。

如何使用QProcess呼叫其它程式或指令碼

最後提醒一下不要忘了資源的釋放,相信大家都不會放這樣的錯誤吧。

如何使用QProcess呼叫其它程式或指令碼

這裡要說明一點的是,在呼叫的程式或者shell指令碼結束時,會有一個finish()訊號發出的,如果你要用上的需要connect一下,如下圖所示。

如何使用QProcess呼叫其它程式或指令碼

相關問題答案