QT下实现对Linux Shell调用的几种方法

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT下实现对Linux Shell调用的几种方法相关的知识,希望对你有一定的参考价值。

 使用QProcess QThread

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

#include <QProcess>
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-&gt;addArgument("qmake");
proc-&gt;addArgument("-o");
proc-&gt;addArgument("/home/sjq/work/jobs/test6/test/Makefile");
proc-&gt;addArgument("/home/sjq/work/jobs/test6/test/cmd.pro");
if(proc-&gt;start())
{
cout&lt;&lt;"error"&lt;&lt;endl;
}

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

mkdir TEST

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

if(proc-&gt;start())
{
cout&lt;&lt;"error"&lt;&lt;endl;
}

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

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

while ( proc-> isRunning()) 

stringOut = proc-> readLineStdout(); 
textEdit-> append( stringOut ); 

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

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

下面是使用Qthread的一种方法

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

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

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

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

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

#include <QProcess>
#include <QThread>
#include <QString>
#include <QStringList>
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();
}

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

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

http://no001.blog.51cto.com/1142339/450327

以上是关于QT下实现对Linux Shell调用的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

Qt实现Qchart的打印和打印预览的几种方法

Linux下实现定时器Timer的几种方法

Linux下反弹shell的几种姿势

linux shell 多个命令一起执行的几种方法

shell生成随机数的几种方法

Shell脚本中执行sql语句操作