1. 程式人生 > >Qt程式設計呼叫外部程式開啟檔案

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

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
{
public:
   void run();
};

void MyThread::run()
{
QProcess::execute("notepad.exe");
}


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

Quote:

class ...............
{...........
MyThread thread;
............
};

.....................
thread.start();

相關推薦

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

QDesktopServices::openUrl ( QUrl::fromLocalFile(fileName) );fileName:檔名,如C:/新建 Microsoft Word 文件.docQUrl::fromLocalFile()一定要用這個方法,因為檔名或路徑中

QT呼叫外部程式的方法 QProcess類

QT4對於介面程式設計無疑是一個很方便的工具。但是由於它介面開發專項特性,可能導致了某些方面的不足(到目前為止暫時沒有使用到這類複雜功能,所以只能是推測)。這樣當整個程式需要某些功能時,就需要外部模組的支援。為了能夠與外部程式相互聯絡,Qt4提供了強大的外部程式呼叫類。先說說

QT呼叫外部程式的方法

    我做的那個小軟體的圖形介面是基於QT3.2的,在主介面的命令列編輯框輸入命令以後要執行別人已經寫好的可執行檔案。這些可執行檔案執行的時間比較長,在終端上執行時會顯示一些執行的資訊,最後才顯示執行結果。我的介面上有一個文字框,我想把它們在後臺執行過程中的資訊不斷新增到文字框中,相當於實時顯示吧,不過要求

QT呼叫外部程式

QT呼叫shell 或 外部程式有三種方法: 第一種方法,是呼叫linux C 函式庫中的 system(const char *string); system ("opt/ts_test"); 第二種方法: QProcess::execute ("opt/ts_test

Qt中的利用QProcess呼叫外部程式

今天工作中要Qt呼叫記事本來開啟一個檔案。上網查了一下用QProcess用法,一般的QProcess開啟外部程式.exe檔案,下面總結一下,挺簡單的。 int QProcess::execute(const QString &program, const&n

Java 呼叫外部程式開啟一個新的程序

背景:java 支援多執行緒,這是絕大多數程式都滿足的必要條件,因為多執行緒個可以增加程式的“吞吐量”,提高使用者對軟體的流暢性體驗。             同時,java程式也支援開啟新的程序,或者叫做java呼叫外部應用程式。這裡的實現方式java提供了兩個類:Proc

Android開發之呼叫外部應用開啟指定檔案

Type為"*/*"指全部型別的檔案。注意這裡需要動態申請讀寫許可權 if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageM

QT 呼叫外部程式

QT呼叫外部程式有下面幾種方法: //1.通過呼叫linux C 函式 system("opt/myApp"); //2.通過QProcess,阻塞呼叫 QProcess::execute("/opt/myApp"); //3.通過QProcess,非阻塞呼叫 QPr

qt如何用指定程式開啟當前路徑下的檔案

實現這個功能需要用到ShellExecuteA函式,首先需要在工程配置檔案.pro中加入lib檔案: LIBS+=-lshell32#播放檔案使用 使用方法如下ShellExecuteA(0,"o

Qt呼叫外部程式

一、呼叫系統預設應用開啟檔案 使用QDesktopServices的openUrl()成員 這個函式是跨平臺的,Qt會根據不同的系統平臺呼叫預設的程式開啟指定檔案,QUrl存放制定的路徑,使用非常簡

Java呼叫外部程式、執行Shell或cmd命令

亦可以使用Runtime呼叫外部程式 public static void main(String []args) throws IOException { List<String> command = new ArrayList<>();

winform 呼叫外部程式和多執行緒

1.呼叫外部程式 Process outProcess = new Process(); //初始化 outProcess.StartInfo.File

在ROS中呼叫外部連結庫檔案(.so)配置方法

舉例說明吧: 1、建立檔案樹如下: myproject: -include --Interface.h -lib --libInterface.so -src --control.cpp

SAP 呼叫外部程式(nco作為服務端)

SAP 的方法(函式)如何用其它語言實現,是SAP的funcation module 如果在外面實現,就是在SAP裡建立一個FM,然後在外面用其它語言,JAVA,.net實現這個方法完成複雜功能。在SAP外部啟動一個服務,這個服務連線SAP的geteway service,當

MFC程式開啟檔案對話框出錯的問題解決

前幾天從網上下了個影象分析的mfc小程式,是VC6的 用VC6在本地編譯生成都沒問題,執行起來彈出一個未處理的錯誤,程式崩潰退出。 想起來原來遇到過開啟檔案對話方塊方面的問題,當時專案時間緊張未能深究。 這次要好好看下這個問題。 具體做法就是深入細緻的跟蹤、跟蹤、跟蹤。。。

python呼叫外部程式

轉載地址:  https://www.cnblogs.com/songwenlong/p/5940155.htmla.os.system方法Execute the command (a string) in a subshell. This is implemented by

C#如何呼叫外部程式,及該托盤程式的恢復與隱藏

第一次寫部落格,太OUT了…… 現狀:專案中要呼叫一個外部的應用程式,該程式最小化之後,隱藏在系統托盤中 要求:如果該程式沒有執行,則啟動,如果被隱藏在托盤中,則恢復到使用狀態 看了網上的資料,好多程式碼超級複雜,得碼半天, ShowWindow中的第二個引數: 0,表示隱

python-呼叫外部程式(subprocess模組)

參考:https://www.cnblogs.com/breezey/p/6673901.htmlsubprocess模組是python從2.4版本開始引入的模組。主要用來取代 一些舊的模組方法,如os.system、os.spawn*、os.popen*、commands.

QtQt之啟動外部程式【轉】

簡述 QProcess可以用來啟動外部程式,並與它們互動。 要啟動一個程序,通過呼叫start()來進行,引數包含程式的名稱和命令列引數,引數作為一個QStringList的單個字串。 另外,也可以使用setProgram()和setArguments()來執行,然後呼叫start()或open()

Qt 之啟動外部程式

簡述 QProcess可以用來啟動外部程式,並與它們互動。 要啟動一個程序,通過呼叫start()來進行,引數包含程式的名稱和命令列引數,引數作為一個QStringList的單個字串。 另外,也可以使用setProgram()和setArguments()