QProcess一些小知識

2021-09-03 02:53:57 字數 1034 閱讀 1906

1. 啟動外部程式的兩種方式:

(1) 一體式:void start()外部程式啟動後,將隨主程式的退出而退出;

(2) 分離式:void startdetached()外部程式啟動後,當主程式退出時並不退出。而是繼續執行。

2. 當程式路徑中含有空格的時候,特別是windows系統該程式路徑會無法被識別。

解決方法是將程式路徑傳遞給arguments引數。

3. 阻塞的函式,呼叫會可能介面停止響應,在互動性比較強的應用需要注意使用。

/* 堵塞。直到外部程式啟動 */

bool waitforstarted(int msecs = 30000)

/* 堵塞,直到輸出通道中的新資料可讀 */

bool waitforreadyread(int msecs = 30000)

/* 堵塞,直到輸入通道中的資料被寫 */

bool waitforbyteswritten(int msecs = 30000)

/* 堵塞,直到外部程式結束 */

bool waitforfinished(int msecs = 30000)

4. 管道命令的正確使用方法

正確實現使用setstandardoutputproces介面:

/* command1 | command2 */

qprocess process1;

qprocess process2;

process1.setstandardoutputprocess(&process2);

process1.start("command1");

process2.start("command2");

5. 捕獲輸出

(1) 標準輸出

qbytearray readallstandardoutput()
(2) 標準錯誤

qbytearray readallstandarderror()

一些小知識

1.答 int elev 10 0.5 10 3答 arctoolbox中有直接的工具!data management tools features feature to polygon 4如何用arcgis實現指定範圍的dem水平切面 主要是想實現dem和水面結合的三維效果 但如何計算水面範圍 答...

Oracle一些小知識

1 select from table name for update 和 select t.t.rowid from table name t的區別 二者都可以編輯表資料,但是前者會鎖表,後者則不會。原理且不深究,當我們修改某一行資料時,如果不想鎖表就是用後者。2 邏輯判斷 select 1 fr...

python一些小知識

1 python連線mssql資料庫編碼問題 python一直對中文支援的不好,最近老遇到編碼問題,而且幾乎沒有通用的方案來解決這個問題,但是對常見的方法都試過之後,發現還是可以解決的,下面總結了常用的支援中文的編碼問題 這些方法中可能其中乙個就能解決問題,也可能是多個組合 1 首先,要保證檔案的開...