Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74708
  • 博文数量: 11
  • 博客积分: 391
  • 博客等级: 一等列兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 09:02
文章分类

全部博文(11)

文章存档

2011年(4)

2010年(7)

我的朋友

分类: C/C++

2011-06-01 09:54:17

原文地址:

使用QProcess QThread

============================================

#include
int main()
{
QProcess::execute("ls");
return 0;
}

============================================


QProcess *poc = new QProcess;
poc-> start( "ping 222.207.53.1> hh ");
打开hh文档 读取里面的内容给QTextEdit

============================================

QProcess *proc = new QProcess;
proc->addArgument("qmake");
proc->addArgument("-o");
proc->addArgument("/home/sjq/work/jobs/test6/test/Makefile");
proc->addArgument("/home/sjq/work/jobs/test6/test/cmd.pro");
if(proc->start())
{
cout<<"error"<<endl;
}

其中使用方法就在于对QProcess 的调用如

mkdir TEST

QProcess *proc = new QProcess;
proc->addArgument("mkdir");
proc->addArgument("TEST");

if(proc->start())
{
cout<<"error"<<endl;
}

============================================

另外的一种使用方法,一种交换

while ( proc-> isRunning())
{
stringOut = proc-> readLineStdout();
textEdit-> append( stringOut );
}
这样能读出来,但是不知道怎么停下来,在读的proc执行的过程中,窗口被冻结
最后用了qApp-> processEvents()来解决的
我再去研究研究pthread.

============================================

下面是使用Qthread的一种方法

===============================================

#include
#include
class MyThread : public QThread
{
public:
void run();
};

void MyThread::run()
{
QProcess::execute("service lighttpd restart");
}

int main()
{
MyThread *thread=new MyThread;
thread->start();
}

============================================

#include
#include
#include
#include
class MyThread : public QThread
{
public:
void run();
};

void MyThread::run()
{
QProcess *testc=new QProcess;
QString program = "rm";
QStringList arguments;
arguments << "./a.txt";
testc->start(program, arguments);
}

int main()
{
MyThread *thread=new MyThread;
thread->start();
}

细化操作--不打印显示任何的操作结

总结的时候参考了网的的大家的一些做法:)

阅读(6535) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~