QT下实现对Linux Shell调用的几种方法 QProcess AND QThread
2010-12-10 12:22
711 查看
使用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->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 <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();
}
细化操作--不打印显示任何的操作结
总结的时候参考了网的的大家的一些做法:)
============================================
#include <QProcess>
int main()
{
QProcess::execute("ls");
return 0;
}
============================================
[align=center] [/align] |
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 <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();
}
细化操作--不打印显示任何的操作结
总结的时候参考了网的的大家的一些做法:)
相关文章推荐
- QT下实现对linux 的Shell 调用 的几种方法 QProcess AND QThread
- QT下实现对Linux Shell调用的几种方法
- QT下实现对Linux Shell调用的几种方法
- Python调用本地cmd的各种实现方法及优劣(subprocess.Popen,os.system和commands.getstatusoutput)
- php常见实现远程调用的几种方法-中间件
- javascript中数组Array对象调用不同的方法可以实现几种数据结构
- Ubutnu系统下用QT等IDE调用Caffe、SSD框架,编译Caffe实现分类检测等工程应用的方法
- Linux Shell实现交互的几种方法
- linux shell中实现字符串反转的几种简单方法
- .net ajax 异步调用的几种实现方法(jquery)
- dll--几种基本实现及调用方法
- linux shell实现随机数几种方法分享(date,random,uuid)
- Android 实现滑动的几种方法(一)onLayout方法 和 offsetLeftAndRight()与offsetTopAndBottom();
- net ajax 异步调用的几种实现方法(jquery)
- .net ajax 异步调用的几种实现方法(jquery)
- QT调用外部程序有下面几种方法:
- Qt实现睡眠的几种方法
- linux shell实现随机数几种方法分享(date,random,uuid)
- 实现icon和文字垂直居中的两种方法-(vertical-align and line-height)
- VS2013+python+boost.python 实现python调用c++方法