QT新建进程
来源:互联网 发布:数据分析师与公务员 编辑:程序博客网 时间:2024/06/06 04:30
Qt QProcess
作为几乎对C++进行语言级别改变的框架Qt,进行了与Cocoa类似的封装,对了,其实感觉Qt对C++从语言特性的改变 上来说类似于Cocoa对于Objective C的改变,不同的是Qt没能统治C++世界。
Test1:
#include <QtCore/QCoreApplication>
#include <QtCore/QProcess>
#include <QtCore/QStringList>
int main(int argc, char *argv[])
{
QString program = "cat";
QStringList arguments;
arguments <<"a" <<"b";
QProcess *myProcess = new QProcess();
myProcess->start(program, arguments);
myProcess->waitForFinished();
QByteArray output = myProcess->readAllStandardOutput();
printf("%s", (const char*)output);
return 0;
}
QProcess就是Qt封装的进程类,需要特别说明的此类使用上在Qt4与Qt3是不同的。并且,有个问题是因为Qt现在几乎已经是纯面向GUI的界面库了,所以QProcess默认是进行命令行不输出的,这里转了个弯,先读出了输出,然后用printf输出了。
Test2:
#include <QtCore/QCoreApplication>
#include <QtCore/QProcess>
#include <QtCore/QStringList>
int main(int argc, char *argv[])
{
QString program = "cat";
QStringList arguments;
arguments <<"a" <<"b";
QProcess *myProcess = new QProcess();
myProcess->setStandardOutputFile("c");
myProcess->start(program, arguments);
myProcess->waitForFinished();
return 0;
}
但是看了示例,什么感觉?个人感觉Qt不愧是专门做API的,靠API吃饭的与靠卖硬件为生的公司就是不一样,API的设计实 在是恰到好处,简介简练,并且,最重要的是,够用!
Test3:
#include <QtCore/QCoreApplication>
#include <QtCore/QProcess>
#include <QtCore/QStringList>
int main(int argc, char *argv[])
{
QString program = "/bin/cat";
QStringList arguments;
arguments <<"a" <<"b";
QProcess *myProcess = new QProcess();
QProcess *outProcess = new QProcess();
myProcess->setStandardOutputProcess(outProcess);
myProcess->start(program, arguments);
outProcess->start(program);
myProcess->waitForFinished();
outProcess->waitForFinished();
QByteArray output = outProcess->readAllStandardOutput();
printf("%s", (const char*)output);
return 0;
}
总体上而言,Qt没有设计pipe对应的类,但是,对于一个函数可以解决的任务来说,很明显使用起来是更加简单的,像Cocoa那样,对这么简单的概念都进行相应的封装,其实有过度设计之嫌。。。。其实NSPipe也就2,3个函数,而且,如此例所示,其实,除了一个有 用外,NSPipe多出的那么几个都是因为多了NSPipe才出现的函数。。。。。悲哀中。。。。
总表
Test1
Test2
Test3
SHELL
单 行5字符
单行7字符
单行9字符
C Runtime Library's system
5行
5行
5行
Python's os.system
2行
2行
2行
Win32 API WinExec/ShellExecute
6行
6行
type限制
Win32 API CreateProcess
16行
16行
type限制
Objective C With Cocoa
15行
23行
23行
Qt QProcess
16行
15行
20行
FROM: http://blog.csdn.net/study_more/article/details/7337412
- QT新建进程
- QT新建进程
- QT新建进程 QProcess
- qt中新建项目
- Linux新建进程
- linux新建进程--fork
- Qt进程
- Qt新建线程的方法
- QT新建源文件模板修改
- Qt安装与新建项目
- VS 2015 新建QT项目
- Qt 新建线程的方法
- 新建QT第一个项目
- C++ 新建进程和结束进程
- Qt 开启进程,查找进程,关闭进程
- QT 保存对话框,新建QFileDialog方式
- VS2010里新建Qt项目库路径
- Qt新建类后出现错误lnk2019
- android高仿酷狗音乐播放器源码下载
- Android FoldingLayout 折叠布局 原理及实现(一)
- jQuery-强大的jQuery选择器
- Java transient关键字使用小记
- Bitmap 实现对图片压缩的2种方法小结
- QT新建进程
- 视频托管必须了解的视频参数
- 补码原理
- 深度剖析Android MVPR架构模式(一)
- runtime 方法交换
- Java--Swing组件使用问题详解
- gpiolib管理gpio过程
- QT中利用多进程打开已安装的程序
- java编程之Noncompliant; %n should be used in place of \n to produce the platform-specific line separato