Qt 調用進程 QProcess的使用詳解

      網友投稿 1575 2022-05-30

      進程的概念

      進程是操作系統里的一個概念,所謂進程就是程序執行的時候,會產生程序調度,數據處理等過程,因此一個程序會有多個進程,每個進程有自己獨立的數據空間,以允許同時有多位用戶執行同一程序,卻不會相沖突。

      所以引申出一些其他的概念。

      狀態

      進程在執行時,狀態(state)會改變。所謂狀態,就是指進程目前的動作:

      新生(new):進程新產生中。

      執行(running):正在執行。

      等待(waiting):等待某事發生,例如等待用戶輸入完成。亦稱“阻塞”(blocked)

      就緒(ready):排班中,等待CPU。

      結束(terminated):完成執行。

      PID

      每個進程都有自己的標識符(ID),我們稱之為PID;

      QProcess

      Qt 中可以使用QProcess類對進程進行操作,允許操作外部程序并進行通訊。

      需要包含頭文件:

      #include qmake: QT += core Inherits: QIODevice

      1

      2

      3

      4

      5

      具體可以參考文檔:https://doc.qt.io/qt-5/qprocess.html

      下面是常用的public function:

      QProcess(QObject *parent = nullptr) virtual ~QProcess() QStringList arguments() const void closeReadChannel(QProcess::ProcessChannel channel) void closeWriteChannel() QProcess::CreateProcessArgumentModifier createProcessArgumentsModifier() const QProcess::ProcessError error() const int exitCode() const QProcess::ExitStatus exitStatus() const QProcess::InputChannelMode inputChannelMode() const QString nativeArguments() const QProcess::ProcessChannelMode processChannelMode() const QProcessEnvironment processEnvironment() const qint64 processId() const QString program() const QByteArray readAllStandardError() QByteArray readAllStandardOutput() QProcess::ProcessChannel readChannel() const void setArguments(const QStringList &arguments) void setCreateProcessArgumentsModifier(QProcess::CreateProcessArgumentModifier modifier) void setInputChannelMode(QProcess::InputChannelMode mode) void setNativeArguments(const QString &arguments) void setProcessChannelMode(QProcess::ProcessChannelMode mode) void setProcessEnvironment(const QProcessEnvironment &environment) void setProgram(const QString &program) void setReadChannel(QProcess::ProcessChannel channel) void setStandardErrorFile(const QString &fileName, QIODevice::OpenMode mode = Truncate) void setStandardInputFile(const QString &fileName) void setStandardOutputFile(const QString &fileName, QIODevice::OpenMode mode = Truncate) void setStandardOutputProcess(QProcess *destination) void setWorkingDirectory(const QString &dir) void start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = ReadWrite) void start(const QString &command, QIODevice::OpenMode mode = ReadWrite) void start(QIODevice::OpenMode mode = ReadWrite) bool startDetached(qint64 *pid = nullptr) QProcess::ProcessState state() const bool waitForFinished(int msecs = 30000) bool waitForStarted(int msecs = 30000) QString workingDirectory() const

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      Qt 調用進程 QProcess的使用詳解

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      常見用法

      Windows系統下,打開文本編輯器;

      QString filename = "TEST.txt"; QProcess process; process.setWorkingDirectory("C:\\Windows\\System32"); process.start("notepad.exe", QStringList() << filename); process.waitForFinished (-1); //等待進程結束

      1

      2

      3

      4

      5

      Qt 任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【愚公系列】2022年02月 微信小程序-app.json配置屬性之requiredBackgroundModes
      下一篇:AI頂會連發7篇論文,華為云實現人工智能多領域新突破
      相關文章
      亚洲色精品vr一区二区三区| 亚洲中文字幕在线第六区| 亚洲免费在线视频| 亚洲综合亚洲综合网成人| 亚洲午夜精品久久久久久浪潮 | 久久精品国产亚洲AV麻豆~| 国产精品亚洲αv天堂无码 | 亚洲欧洲国产成人精品| 亚洲日本香蕉视频观看视频| 亚洲精品美女在线观看| 亚洲熟妇色自偷自拍另类| 亚洲国产成人久久| 亚洲人成免费电影| 国产成人精品日本亚洲专区6| 中文字幕 亚洲 有码 在线| 亚洲成AV人综合在线观看 | 亚洲伊人久久大香线焦| 亚洲永久在线观看| 亚洲精品无码av中文字幕| 亚洲AV无码专区在线电影成人 | 久久亚洲中文字幕无码| 亚洲AV无码精品国产成人| 人人狠狠综合久久亚洲高清| 亚洲国产精品视频| 中文字幕亚洲专区| 亚洲av日韩综合一区在线观看| 亚洲黄色免费观看| 亚洲免费黄色网址| 亚洲熟妇av午夜无码不卡| 国产精品亚洲精品久久精品| 国产在亚洲线视频观看| 亚洲最大激情中文字幕| 亚洲国产精品一区| 亚洲欧洲自拍拍偷综合| 亚洲自偷自偷在线成人网站传媒 | 亚洲av色香蕉一区二区三区蜜桃| 午夜亚洲国产精品福利| 亚洲日韩精品一区二区三区| 亚洲情a成黄在线观看动漫尤物| 亚洲午夜电影在线观看高清| 亚洲乱码av中文一区二区|