Qt : QProcess

  QProcess 类用来启动另外的一个出现并与他们联系。

  开始一个进程,通过传递你想要运行程序的名称和命令行参数作为参数给start()函数,来开始一个进程。参数作为独立的字符串来提供。

  QProcess运行你对待一个进程就像一个I/O 设备一样。你能够从进程中读取和写入数据,就像是网络TCP套接字一样。你可以通过write()写入进程的标准输入,也可以通过read(),readline(),getChar()来读取程序的标准输出。因为它继承QIODevice 类。QProcess也可以为QXmlReader 类作为一个输入源。

  当进程结束的时候,QProcess再次进入 NotRunning状态,并且发射finished()信号。

  finished()信号提供进程的退出代码和结束状态作为参数,可以通过调用exitCode()函数来获得上一个完成的进程的退出代码。exitStatus()函数获得它的退出状态。任何时候发生了错误,QProcess都会发生error()信号。你也可以调用error()函数来发现上一次错误发生时的类型,用state()来发现现在进程的状态。

时间: 2024-10-08 10:14:04

Qt : QProcess的相关文章

Qt QProcess启动和关闭外部程序

//适用于关闭后台进程的方法 QString c = "taskkill /im notepad.exe /f"; int pInt = QProcess::execute(c); //关闭后台notepad.exe进程,阻塞式运行,一直占用cpu,成功返回0,失败返回1 qDebug()<<"pInt:"<<pInt; 一.启动外部程序的两种方式:(1)一体式:void QProcess::start(const QString &

[QT] QProcess finished 信号,关联的 slot 必须检查返回码

void QProcess::finished(int exitCode, QProcess::ExitStatus exitStatus) 原文地址:https://www.cnblogs.com/liujx2019/p/10531769.html

mac 辅助接口

mac 辅助接口1.打开文件所在目录并选中该文件2.获取plist属性值3.系统关机4.打开系统网络设置5.字符串包含比较6.系统挂载数及挂载盘符信息 //====================================================1.打开文件所在目录并选中该文件<1>.cocoa NSWorkspace方式void MacOpenLocateFileInWindow(const char *pChFilePath){    NSAutoreleasePool *p

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

阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了2天仍然没找到原因,使用另外一种办法解决了. 回到顶部 创建压缩包的方法 在windows平台创建压缩包,可以直接使用rar.exe,该程序在安装winrar之后,在其安装目录下就可以找到.该程序是winrar对应的命令

Qt学习之路(58): 进程间交互(QProcess.readAllStandardOutput可以读取控制台的输出)

所谓 IO 其实不过是与其他设备之间的数据交互.在 Linux 上这个概念或许会更加清楚一些.Linux 把所有设备都看作是一种文件,因此所有的 IO 都归结到对文件的数据交互.同样,与其他进程之间也存在着数据交互,这就是进程间交互. 为什么需要进程间交互呢?Qt 虽然是一个很庞大的库,但是也不能面面俱到.每个需求都提供一种解决方案是不现实的.比如操作系统提供了查看当前文件夹下所有文件的命令(Windows 下是 dir, Linux 下是 ls),那么 Qt 就可以通过调用这个命令获取其中的信

无法关闭的QT程序(覆盖closeEvent,新建QProcess并脱离关系)

做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难, 其实它并不难,只要让程序在关闭时启动它自身就可以了. 上代码: [cpp] view plaincopyprint? #include <QtGui> class Temp : public QWidget { Q_OBJECT private: QLabel *label; protected: void closeEvent(QCloseEvent *event); public: Temp(QWidget *paren

【Qt】使用QProcess调用其它程序或脚本

大概试了一下,还是不错的,不过字符编码问题还不太好解决: 代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QProcess> #include <QTextCodec> #include <QCloseEvent> MainWindow::MainWindow(QWidget *parent)

Inter-process communication in Qt using QProcess

Recently, I needed to call a CUI program from within Qt GUI window and simulate the effect of an embedded command line window like the Autolisp console in AutoCAD. At the beginning, I wanted to implement this function using UNIX pipe. However, I foun

Qt打开外部程序和文件夹需要注意的细节(注意QProcess的空格问题,以及打开本地文件时,需要QUrl::fromLocalFile才可以)

下午写程序中遇到几个小细节,需要在这里记录一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this);     QFileInfo fileinfo(appUrl);     QString appPath = QApplication::applicationDirPath()+SAVEDIR+"/"+fileinfo.fileName();     bool res = proce