<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## 概述 1. QProcess是一個能夠非常方便而且跨平臺)的用于啟動和控制其他進程的類。它從Qobject派生而來,可充分利用信號和槽來簡化與其他Qt類的“交互”。 2. 一個 QProcess可以使用stat()函數來啟動另外一個進程。新進程將會成為一個子進程并且在父進程終止時而隨之終止。 3. startDetached() 函數來啟動一個在父進程結束之后任能存活的進程 **子進程** - 子進程可以看成是一個預先定義了兩個輸出通道的順序 IO 設備,這兩個輸出通道分別代表了兩個獨立的數據流: stdout和 stderr。 - 父進程可以使用函數 setReadchanne()來選擇一個輸出通道(默認是 stdout)。當子進程中被選中通道的數據可用時,它將會發射出信號 readyRead()。 - 此時父進程就可以通過調用函數read(), readline()或者getchar()來讀取其輸出結果。 - 如果子進程啟用了標準輸人,那么父進程就可以使用 write()函數向其發送數據。 ## 示例 ### Hello World ``` QObject *parent; ... QString program = "./path/to/Qt/examples/widgets/analogclock"; QStringList arguments; arguments << "-style" << "fusion"; QProcess *myProcess = new QProcess(parent); myProcess->start(program, arguments); ``` ### 調用 gzip 壓縮 ``` QProcess gzip; gzip.start("gzip", QStringList() << "-c"); if (!gzip.waitForStarted()) return false; gzip.write("Qt rocks!"); gzip.closeWriteChannel(); if (!gzip.waitForFinished()) return false; QByteArray result = gzip.readAll(); ``` ### 啟動 監聽 tail -f <details> <summary> logtail.h</summary> ```#ifndef LOGTAIL_H #define LOGTAIL_H #include <QProcess> #include <QDebug> class LogTail : public QProcess { Q_OBJECT public: LogTail(QString fn){ if(fn.isEmpty()){ return; } // 有要讀取的數據,觸發 connect(this,&LogTail::readyReadStandardOutput,this,&LogTail::logoutput); QStringList argv; argv<<"-f"<<fn; // 啟動 tail -f start("tail",argv); } ~LogTail(){ terminate(); } signals: void logString(const QString& line); public slots: void logoutput(){ QByteArray output = readAllStandardOutput(); qDebug()<<"output:"<<output; QStringList lines = QString(output).split("\n"); foreach (QString line, lines) { emit logString(line); } } }; #endif // LOGTAIL_H ``` </details> <details> <summary> main.cpp</summary> ``` #include <QApplication> #include <QTextEdit> #include <QDebug> #include <QFile> #include "logtail.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QStringList args = a.arguments(); QTextEdit textEdit; textEdit.setWindowTitle("Debug"); QString filename; if(args.size()>1){ filename=args[1]; qDebug()<<"filename "<<filename; } QFile file(a.applicationDirPath()+"/"+filename,qApp); // 調用進程 LogTail tail(filename); tail.connect(&tail,&LogTail::logString,&textEdit,&QTextEdit::append); textEdit.show(); return a.exec(); } ``` </details> <br /> ### 給進程設置環境變量 環境變量和它們的值通常由父進程設置 ``` QProcess process; QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable process.setProcessEnvironment(env); process.start("myapp"); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看