Qt中呼叫外部程式開啟檔案

2021-06-06 07:38:26 字數 752 閱讀 1205

qdesktopservices::openurl ( qurl::fromlocalfile(filename) );

filename:檔名,如c:/新建 microsoft word 文件.doc

qurl::fromlocalfile()一定要用這個方法,因為檔名或路徑中中文或空格,不然打不開檔案.

直接用qurl(filename)只能開啟英文名稱和沒有空格路徑的檔案.

如何啟動乙個外部程式

答:1、使用qprocess::startdetached()方法,啟動外部程式後立即返回;

2、使用qprocess::execute(),不過使用此方法時程式會最阻塞直到此方法執行的程式結束後返回,這時候可使用qprocess和qthread這兩個類結合使用的方法來處理,以防止在主線程中呼叫而導致阻塞的情況

先從qthread繼承乙個類,重新實現run()函式:

quote:

class mythread : public qthread

;void mythread::run()

這樣,在使用的時候則可定義乙個mythread型別的成員變數,使用時呼叫其start()方法:

quote:

class ...............

;.....................

thread.start();

Qt程式設計呼叫外部程式開啟檔案

qdesktopservices openurl qurl fromlocalfile filename filename 檔名,如c 新建 microsoft word 文件.doc qurl fromlocalfile 一定要用這個方法,因為檔名或路徑中中文或空格,不然打不開檔案.直接用qurl...

Qt程式設計呼叫外部程式開啟檔案

qdesktopservices openurl qurl fromlocalfile filename filename 檔名,如c 新建 microsoft word 文件.doc qurl fromlocalfile 如果檔名或路徑中中文或空格一定要用這個方法,不然打不開檔案.直接用qurl ...

QT呼叫外部程式

qt呼叫外部程式 system calc.exe qprocess execute calc.exe qprocess startdetached calc.exe qprocess pro new qprocess pro start calc.exe 注釋 1 前兩種方法會阻塞程序,直到計算器程...