linux下qprocess获取进程,QT下实现对Linux Shell调用的几种方法 QProcess, QThread

使用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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值