溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

qt如何啟動和終止進程

發布時間:2022-01-13 15:21:14 來源:億速云 閱讀:309 作者:iii 欄目:大數據

本篇內容介紹了“qt如何啟動和終止進程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

進程通信的范圍非常大,也有很多的方法。其中的有些方法甚至可以單獨成書。本系列使用幾個小程序進行盡量簡單的說明。今天首先說明啟動和終止另外一個進程。

被調用端代碼

int main(int, char*[])
{
   string msg;
   while(msg != "BYE")
   {
       cin >> msg;
       transform(msg.begin(), msg.end(),
                 msg.begin(), ::toupper);
       cout << msg << endl;
   }
}

代碼很簡單,從標準輸入讀入字符串,轉換為大寫,然后輸出。

如果輸入的字符串轉為大寫以后是“BYE”則程序退出。

調用端代碼

int main(int /*argc*/, char */*argv*/[])
{
    QProcess server;
    server.start("G:\\Qt\\21070809 ProcessComm\\ServerProcess\\bin\\debug\\ServerProcess.exe"
                 ,QStringList());
     if (!server.waitForStarted())
        return false;
     server.write("bye");
    server.closeWriteChannel();
     if (!server.waitForFinished())
        return false;

    QByteArray result = server.readAll();
    cout << result.constData();
    return 0;
}

看不全的部分是文件名,不用太在意。

這部分代碼利用了QT的QProcess類來操作進程。大致分為以下幾步:

  1. 指定文件名和參數調用start方法來啟動一個進程

  2. 調用waitForStarted方法來等待進程啟動成功

  3. 向進程寫入“bye”字符串,指示線程退出

  4. 關閉寫通道

  5. 調用waitForFinished方法等待線程退出

  6. 取得進程返回的數據并輸出,這里我們可以得到一個“BYE”

這個例子程序包含了進程操作通信的基本要素,是今后一段時間實例的基礎。

“qt如何啟動和終止進程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女