1. 程式人生 > >QT 呼叫外部程式

QT 呼叫外部程式

QT呼叫外部程式有下面幾種方法:

//1.通過呼叫linux C 函式
system("opt/myApp");

//2.通過QProcess,阻塞呼叫
QProcess::execute("/opt/myApp");

//3.通過QProcess,非阻塞呼叫
QProcess *pro = new QProcess;
pro->start("/opt/myApp");


第一種方法,是呼叫linux C函式庫中的system(const char *string);
第二 種方法和第三種方法 是調QT裡的函式。

需要說明的是:

1. 前兩種方法會阻塞程序,直到myApp程式結束,而第三種方法則不會阻塞程序,可以多工執行。

2. QT在執行的時候,要啟動qws服務,如果用前面兩種方法,執行的時候,要新開啟一個qws,否則不能執行;而用第三種方法,則不需要再開啟qws,它和主程序共用一個qws。

3. 第三種方法雖然不會阻塞,但是有可能在終端上看不到打印出來的資訊。所以要在終端顯示資訊時,可以考慮用阻塞模式。


相關推薦

QT 呼叫外部程式

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

Qt呼叫外部程式

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

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

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

[Qt]呼叫外部執行程式(Windows & Mac)

Qt本身是一個跨平臺開發工具,對於不同平臺的外部程式又該如何呼叫呢     QStringList args;  //如果需要啟動引數的話 #ifdef Q_OS_WIN     QProcess:

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

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

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

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

QT呼叫外部程式的方法

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

如何使用QT呼叫外部可執行程式

在QT中呼叫外部可執行程式,如exe等。在本例中我們使用QT的QProcess類呼叫Git Bash中的命令,(在我們專案中需要呼叫一個bash命令,所以將命令寫在.sh檔案中,但是MAC中雙擊.sh檔

QT呼叫外部程式

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

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

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

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

QT 啟動外部程式 並傳參

#include "mainwindow.h" #include "ui_mainwindow.h" #include <QString> #include <QProcess> MainWindow::MainWindow(QWidget *par

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

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

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.

Java呼叫外部程式命令時執行緒阻塞問題分析

    今天要寫個遠端重啟服務的功能,為了開發速度,暫時定為Java程式碼+WMIC命令的方法,簡單的說,就是利用Java呼叫本機應用程式的方法。涉及到的 Java類有java.lang包裡面的Runtime、Process、ProcessBuilder三個類,以及wmic

QProcess呼叫外部程式:QProcess::start與QProcess::execute

    QT提供了一個QProcess類用於啟動一個外部程式並與之通訊。QProcess::start()與QProcess::execute()都能完成啟動外部程式的任務,二者有什麼區別呢?區別在於start()是非阻塞的,而execute()是阻塞的。專業點講,exec

關於在bcb中呼叫外部程式的用法

1:用system("")執行(簡單,像在CMD命令列一樣) 2:用WinExec()執行 3:用CreateProcess執行 4:用ShellExecute執行. 1)  WinExec() 函式原型: UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow);