qt中进程的使用

时间:2023-03-09 18:01:03
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

 #ifndef PROCESS_H
#define PROCESS_H #include <QMainWindow>
#include <QProcess> //qt中进程的头文件
namespace Ui {
class Process;
} class Process : public QMainWindow
{
Q_OBJECT public:
explicit Process(QWidget *parent = );
~Process();
QProcess *mprocess; //定义一个进程参数 private slots:
void read_data();
void on_btn_cmd_clicked(); private:
Ui::Process *ui;
}; #endif // PROCESS_H

源文件:process.cpp

 #include "process.h"
#include "ui_process.h"
#include <QDebug>
#include <QStringList>
Process::Process(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Process)
{
ui->setupUi(this);
//初始化进程对象
mprocess = new QProcess(); //监听读数据信号
connect(mprocess,SIGNAL(readyRead()),this,SLOT(read_data())); //添加运行参数
ui->comboBoxArg->addItem("192.168.1.246");
ui->comboBoxArg->addItem("./");
ui->comboBoxArg->addItem("c++"); ui->comboBoxCmd->addItem("ifconfig");
ui->comboBoxCmd->addItem("ls");
ui->comboBoxCmd->addItem("./test"); } Process::~Process()
{
delete ui;
} void Process::read_data()
{
while(mprocess->canReadLine()) //全部读出进程中的数据
{
qDebug()<<mprocess->readLine();
} } void Process::on_btn_cmd_clicked()
{
QStringList list;
//拼接字符串,跟appen相似
list<<"ech0";
list<<ui->comboBoxArg->currentText(); mprocess->start(ui->comboBoxCmd->currentText(),list);//启动进程,后面跟的是参数 }