
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);//启动进程,后面跟的是参数 }