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);//启动进程,后面跟的是参数 }
qt中进程的使用的更多相关文章
- 4.QT中进程操作,线程操作
QT中的线程操作 T19Process.pro SOURCES += \ main.cpp CONFIG += C++11 main.cpp #include <QCoreApplicat ...
- QT的进程与线程(cmd /c的写法)
该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 导语 在前面的几节内容中讲解了Qt网络编程的一些基本内容,这一节来看一下在Qt中进程和线程的基本应 ...
- Qt中使用ActiveX(3篇)
由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持.本文主要记录个人学习ActiveX的一些 ...
- QT中QProcess调用命令行的痛苦经历
在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...
- 解析Qt中QThread使用方法
本文讲述的是在Qt中QThread使用方法,QThread似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用QThread,随便用goog ...
- QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)
QT中QProcess调用命令行的痛苦经历 阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...
- Qt 中程序自动重启
参照至 dbzhang老师的博文,记录于此....... 要想理解重启,先得看看Qt程序怎么退出! 1.退出 int main(int argc, char** argv) { QApplicatio ...
- qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)
经过试验,qt启动一个新的进程时,这个进程的工作目录是继承父进程的,无论是通过start还是startDetached来启动. 其实对于linux系统,qt底层应该也是调用fork.exec之类的函数 ...
- QT中的线程与事件循环理解(1)
1.需要使用多线程管理的例子 一个进程可以有一个或更多线程同时运行.线程可以看做是“轻量级进程”,进程完全由操作系统管理,线程即可以由操作系统管理,也可以由应用程序管理.Qt 使用QThread 来管 ...
随机推荐
- 弄明白python reduce 函数
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/understanding-python-reduce-function.html 原创文章,转载请 ...
- Model中设置表单验证方法
Model类里面定义$_validate属性支持的验证因子格式: 格式:array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间). 验证条件: (1)Model::EXISTS_TO_ ...
- 电子笔记本的思考(1)(ver0.3)
章节:电子笔记本的思考(1) 陶哲轩在<解题·成长·快乐——陶哲轩教你学数学>中着重强调,用纸笔来“缓存”思维对于数学解题的重要性: 用选定的符号表达你所知道的信息,并画一个示意图.把 ...
- 【转】Swig 使用指南
原文链接:https://www.cnblogs.com/elementstorm/p/3142644.html 如何使用 API swig.init({ allowErrors: false, au ...
- Scala入门系列(五):面向对象之类
定义类 // 定义类,包含field以及method class HelloWorld { private var name = "Leo" def sayHello() { pr ...
- javascript面向对象系列第四篇——OOP中的常见概念
前面的话 面向对象描述了一种代码的组织结构形式——一种在软件中对真实世界中问题领域的建模方法.本文将从理论层面,介绍javascript面向对象程序程序(OOP)中一些常见的概念 对象 所谓对象,本质 ...
- Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构
用python搭建web服务器,与ajax交互,接收处理Get和Post请求:简单实用,没有用框架,适用于简单需求,更多功能可进行扩展. python有自带模块BaseHTTPServer.CGIHT ...
- Hibernate框架进阶(中篇)之多表关系
导读 Hibernate进阶主要分为上中下三篇,本文是中篇,主要讲解Hibernate框架中多表关系的实现.我们知道多表关系有一对一.一对多(多对一)和多对多三种关系.而1对1关系一般合并为一个表处理 ...
- 如何设置html中img宽高相同-css
最近项目中有一个问题,做一个响应式的盒子,随着屏幕的变化, 宽高一直保持相等,之前一直使用js动态设置,获取盒子的宽度来设置盒子高度. 但是加载时样式显示不是很好,后来直接用css实现. html部分 ...
- nginx HTTP/2.0 配置
1.前言 最近无意中看到http2.0消息,发现自己的博客虽然配了https,但并没有配置http2.0,所以搞了个玩玩,本以为配个参数就搞定了,结果还是折腾了一个小时. 2.过程 nginx并没有默 ...