qt中進程的使用


qt中的進程使用需要用到頭文件:include<QProcess>

首先來看看需要用到的主要的函數

(1)進程的定義:

  QProcess *mprocess; //定義一個進程參數

(2)進程的初始化:

//初始化進程對象
 mprocess = new QProcess();

(3)啟動進程

 //啟動計算器
  mprocess->start("calc"); 

(4)使用進程讀取數據

 while(mprocess->canReadLine()) //全部讀出進程中的數據

(5)字符拼接QStringList的使用方法

    QStringList list;
    //拼接字符串,跟appen相似
    list<<"ech0";
    list<<ui->comboBoxArg->currentText();
    mprocess->start(ui->comboBoxCmd->currentText(),list);//啟動進程,后面跟的是參數

頭函數:process.h

 1 #ifndef PROCESS_H
 2 #define PROCESS_H
 3 
 4 #include <QMainWindow>
 5 #include <QProcess> //qt中進程的頭文件
 6 namespace Ui {
 7 class Process;
 8 }
 9 
10 class Process : public QMainWindow
11 {
12     Q_OBJECT
13 
14 public:
15     explicit Process(QWidget *parent = 0);
16     ~Process();
17     QProcess *mprocess; //定義一個進程參數
18 
19 private slots:
20     void read_data();
21     void on_btn_cmd_clicked();
22 
23 private:
24     Ui::Process *ui;
25 };
26 
27 #endif // PROCESS_H

源文件:process.cpp

 1 #include "process.h"
 2 #include "ui_process.h"
 3 #include <QDebug>
 4 #include <QStringList>
 5 Process::Process(QWidget *parent) :
 6     QMainWindow(parent),
 7     ui(new Ui::Process)
 8 {
 9     ui->setupUi(this);
10     //初始化進程對象
11     mprocess = new QProcess();
12 
13     //監聽讀數據信號
14     connect(mprocess,SIGNAL(readyRead()),this,SLOT(read_data()));
15 
16     //添加運行參數
17     ui->comboBoxArg->addItem("192.168.1.246");
18     ui->comboBoxArg->addItem("./");
19     ui->comboBoxArg->addItem("c++");
20 
21     ui->comboBoxCmd->addItem("ifconfig");
22     ui->comboBoxCmd->addItem("ls");
23     ui->comboBoxCmd->addItem("./test");
24 
25 }
26 
27 Process::~Process()
28 {
29     delete ui;
30 }
31 
32 
33 void Process::read_data()
34 {
35     while(mprocess->canReadLine()) //全部讀出進程中的數據
36     {
37          qDebug()<<mprocess->readLine();
38     }
39 
40 }
41 
42 void Process::on_btn_cmd_clicked()
43 {
44     QStringList list;
45     //拼接字符串,跟appen相似
46     list<<"ech0";
47     list<<ui->comboBoxArg->currentText();
48 
49     mprocess->start(ui->comboBoxCmd->currentText(),list);//啟動進程,后面跟的是參數
50 
51 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM