Qt一个进程运行另一个进程
Qt 进程间通信
- 1. 一个进程运行另一个进程
- 2. 例程代码
1. 一个进程运行另一个进程
- Qt 的 QProcess 类用来启动一个外部程序并与其进行通信。
- 使用 start() 函数运行一个进程,之后 QProcess 进入 Starting 状态;
- 当程序已经运行后,QProcess 就会进入 Running 状态并发送 started() 信号;
- 当进程退出后,QProcess 重新回到 NoRunning 状态并发射 finished() 信号。
2. 例程代码
- mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QProcess>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();void showResult();void showState(QProcess::ProcessState state);void showError();void showFinished(int,QProcess::ExitStatus);private:Ui::MainWindow *ui;QProcess myProcess;
};#endif // MAINWINDOW_H
- mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QTextCodec>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//添加信号和槽的关联connect(&myProcess,&QProcess::readyRead,this,&MainWindow::showResult);connect(&myProcess,&QProcess::stateChanged,this,&MainWindow::showState);connect(&myProcess,&QProcess::errorOccurred,this,&MainWindow::showError);connect(&myProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(showFinished(int,QProcess::ExitStatus)));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{//启动记事本程序,由于它在Windows的系统目录下,该目录已经加在了系统PATH环境变量中,所以不需要写具体路径//myProcess.start("notepad.exe");QString program = "cmd.exe";QStringList arguments;arguments<<"/c dir&pause";myProcess.start(program,arguments);
}void MainWindow::showResult()
{QTextCodec * codec = QTextCodec::codecForLocale();qDebug()<<"showResult: "<<endl<<codec->toUnicode(myProcess.readAll());
}void MainWindow::showState(QProcess::ProcessState state)
{qDebug()<<"showState: ";if(state == QProcess::NotRunning){qDebug()<<"No Running";}else if(state == QProcess::Starting){qDebug()<<"Starting";}else{qDebug()<<"Running";}
}void MainWindow::showError()
{qDebug()<<"showError:"<<endl<<myProcess.errorString();
}void MainWindow::showFinished(int exitcode, QProcess::ExitStatus exitStatue)
{qDebug()<<"showFinished:"<<endl<<exitcode<<exitStatue;
}
Qt一个进程运行另一个进程相关推荐
- (C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口
首先是wchar_t转string void Wchar_tToString(string& szDst, wchar_t* wchar) {wchar_t* wText = wchar;DW ...
- linux暂停一个在运行中的进程
对于一个运行中的进程,我们可以使用kill -STOP pid命令将其暂停执行,使用kill -CONT pid命令恢复其运行. 下面用一个实例说明: 1.首先使用tar命令打包/usr目录: [ro ...
- 操作系统原理:进程与线程、进程生命周期、线程的类型
一.进程定义 进程可以看成程序的执行过程,可以展示在当前时刻的执行状态.它是程序在一个数据集合上的一次动态执行的过程.这个数据集合通常包含存放可执行代码的代码段,存放初始化全局变量和初始化静态局部变量 ...
- Linux编程 7 (实时监测进程 top, 结束进程kill,killall)
一. 实时监测进程 top 在一篇里讲到ps命令在收集进程信息时非常有用,但它只能显示某个特定时间点的信息.想要观察那些频繁换进换出的内存进程趋势,用top命令是合适的.使用top命令如下图所示: 在 ...
- Linux下 Qt界面程序嵌入另一个Qt界面程序_Qt应用嵌入外部进程窗口
项目工程的实现,想要使用多个程序进行实现,在里面存在一定的调用的过程:调查的情况如下 Qt界面程序嵌入另一个Qt界面程序[Linux] Qt界面程序嵌入另一个Qt界面程序[Linux]_ptc321的 ...
- 一个或多个音频服务未运行 win7 错误1079:此服务的账户不同于运行于同一进程上的其他服务账户...
一个或多个音频服务未运行 win7 错误1079:此服务的账户不同于运行于同一进程上的其他服务账户 启动任务管理器:右键计算机--管理--"服务和应用程序"选项--"服务 ...
- 如何使一个正在运行的进程慢下来?哦,不,是暂停
sleep? renice? ionice? cpulimit? 连着上了两周班,搞的闷了一脸痘,右下巴起了个大包,现在还没好,我是谁?为了谁?为了兄弟姐妹不流泪?谁最美?谁最美? 那个周六还是我生日 ...
- 一个小故事讲明白进程、线程、Kotlin 协程到底啥关系?
前言 协程系列文章: 一个小故事讲明白进程.线程.Kotlin 协程到底啥关系? 少年,你可知 Kotlin 协程最初的样子? 讲真,Kotlin 协程的挂起/恢复没那么神秘(故事篇) 讲真,Kotl ...
- Hook技术之4 在自己的进程中注入一个Dll到别人的进程
与其说是一种技术,不如说是一种技术思想.它使用了前面讲的那些Hook手段,来达到自己的目的. 其应用环境是这样的,自己有一个进程在运行,这个进程是自己可以控制的,但由于业务的需要,自己又要执行另一个应 ...
最新文章
- Redis的主从复制与高可用搭建(哨兵模式)
- MuJoCo要开源!DeepMind收购物理引擎MuJoCo,将推动全球机器人研发
- MSMQ: C# MSMQ编程问题
- table 在网页无法顶到头部问题
- Linux创建文件系统的命令及xfs文件系统介绍
- QWidget中加载QML页面并设置透明背景
- QT —— 应用程序发布
- 一文了解GaussDB 200的产品架构、数据流程、组网方案、服务部署原则、企业级增强特性......
- .net项目开发工具(V2.0)异常报告专帖
- java 二进制是什么类型_Java基础类型与其二进制表示
- Git环境配置(案例:clone bert源码到本地仓库)
- innodb是mysql几的_MySQL几个和innodb相关的参数
- 5.Prometheus 监控技术与实践 --- PromQL
- shell :将标准输出及标准错误输出写到指定文件
- idea中使用git提交代码步骤
- Wider Face数据集详解
- 车牌识别--opencv(python)
- 皮皮虾无水印解析源码实战
- matlab 求特征值的命令,matlab中求解特征值方程函数eig
- halcon学习-算子学习
热门文章
- Shell同时推送代码至github和gitee的解决办法
- Linux SSH保持连接(解决Broken pipe)
- VBS操作Excel数据
- 自己的 「 代码制造 check list 」
- 2022-01-12总结 CSS开篇
- oracle Plsql 执行update或者delete时卡死问题解决办法
- System.Security.Cryptography.RSA.FromXmlString 系统找不到指定的文件和X509读取证书文件系统找不到指定的文件异常
- Android MVP Presenter 中引发的空指针异常
- [解决方案]WebAPI+SwaggerUI部署服务器后,访问一直报错的问题
- docker 容器启动后立马退出的解决方法