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

qt中进程的使用的更多相关文章

  1. 4.QT中进程操作,线程操作

     QT中的线程操作 T19Process.pro SOURCES += \ main.cpp CONFIG += C++11 main.cpp #include <QCoreApplicat ...

  2. QT的进程与线程(cmd /c的写法)

    该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 导语 在前面的几节内容中讲解了Qt网络编程的一些基本内容,这一节来看一下在Qt中进程和线程的基本应 ...

  3. Qt中使用ActiveX(3篇)

    由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持.本文主要记录个人学习ActiveX的一些 ...

  4. QT中QProcess调用命令行的痛苦经历

    在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...

  5. 解析Qt中QThread使用方法

    本文讲述的是在Qt中QThread使用方法,QThread似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用QThread,随便用goog ...

  6. QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)

    QT中QProcess调用命令行的痛苦经历   阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...

  7. Qt 中程序自动重启

    参照至 dbzhang老师的博文,记录于此....... 要想理解重启,先得看看Qt程序怎么退出! 1.退出 int main(int argc, char** argv) { QApplicatio ...

  8. qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)

    经过试验,qt启动一个新的进程时,这个进程的工作目录是继承父进程的,无论是通过start还是startDetached来启动. 其实对于linux系统,qt底层应该也是调用fork.exec之类的函数 ...

  9. QT中的线程与事件循环理解(1)

    1.需要使用多线程管理的例子 一个进程可以有一个或更多线程同时运行.线程可以看做是“轻量级进程”,进程完全由操作系统管理,线程即可以由操作系统管理,也可以由应用程序管理.Qt 使用QThread 来管 ...

随机推荐

  1. Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class<T> java.lang.reflect.Constructor<T> java.lang.reflect.Fi ...

  2. 分享一小坑(与swagger有关),以后碰到了可以快速规避

     ---------------------------------------------------------------------------------踩坑过程:①webapi的某acti ...

  3. Scala入门系列(八):面向对象之trait

    基础知识 1 将trait作为接口使用 此时Trait就与Java中的接口非常类似,不过注意,在Scala中无论继承还是trait,统一都是extends关键字. Scala跟Java 8前一样不支持 ...

  4. WinForm下的loading框实现

    前言:在项目使用C/S模式情况下,由于需要经常进行数据的刷新,如果直接进行刷新,会有一个等待控件重画的过程,非常的不友好,因此在这里添加一个loading框进行等待显示. 实现:在经过多方面查询资料, ...

  5. Android数据绑定技二,企业级开发

    PS:上一篇文章写了Databinding的简单使用,写了一个绑定textview的示例,和绑定的一些用法,估计有的人会说,之前的写的好好的,为什么要数据绑定这样的写法呢,没办法,社会在进步,当然是怎 ...

  6. 最短路算法之Dijkstra算法通俗解释

    Dijkstra算法 说明:求解从起点到任意点的最短距离,注意该算法应用于没有负边的图. 来,看图. 用邻接矩阵表示 int[][] m = { {0, 0, 0, 0, 0, 0}, {0, 0, ...

  7. 一道题Wrong Answer之后该何去何从?

    写程序手不稳是个大毛病,往往会让一份能AC的代码变成99.995%正确,失之毫厘谬以千里,近期十场个人赛非常少有能一次AC的经历,细致想想除了根本逻辑上的错误.大概都是跪在这些细节上: 1.输出格式, ...

  8. Android系统匿名共享内存(Anonymous Shared Memory)Java调用接口分析

    一.Ashmem驱动程序 ~/Android/kernel/goldfish ----include ----linux ----ashmem.h ----mm ----ashmem.c 驱动程序具体 ...

  9. POJ 2127 最长公共上升子序列

    动态规划法: #include <iostream> #include <cstdio> #include <fstream> #include <algor ...

  10. Linux禁用显示“缓冲调整”

    Linux禁用显示"缓冲调整" youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -o total used free shared ...