使用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://blog.csdn.net/taiyang1987912/article/details/46293929

QT下实现对Linux Shell调用的几种方法的更多相关文章

  1. Qt下存储读写应用程序设置的三种方法

    一.简介 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小.位置和密码等等.有三种方法可以实现: 使用注册表: 使用配置文件(.ini): 使用自定义文件(例如.txt) ...

  2. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

  3. 用 Python 脚本实现对 Linux 服务器的网卡流量监控

    *这篇文章网上已经有相关代码,为了加深印象,我做了相关批注,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新 ...

  4. (转)Linux基础------Shell数值计算的几种方法

    Linux基础------Shell数值计算的几种方法 原文:http://blog.csdn.net/fu_wayne/article/details/21620639 在Linux下总会遇到数值计 ...

  5. linux shell获取show slave status方法

    linux shell获取show slave status方法<pre>#!/bin/basharray=($(mysql -u数据库账号 -p数据库密码 -e "show s ...

  6. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  7. 执行shell脚本的几种方法及区别

    执行shell脚本的几种方法及区别 http://blog.csdn.net/lanxinju/article/details/6032368 (认真看) 注意:如果涉及到脚本之间的调用一定要用 . ...

  8. 利用Linux系统生成随机密码的10种方法【转】

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...

  9. 在Linux文件清空的几种方法

    在Linux文件清空的几种方法 1.使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > tes ...

随机推荐

  1. bzoj1827 [Sdoi2010]星际竞速

    Description 10 年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一, 夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一. 赛车大赛的赛场由 N 颗行星和 ...

  2. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAApcAAAB3CAIAAADZ1fxtAAAbFElEQVR4nO2dzbHDOo6FHY9S0WqqZt

  3. 数据采集工具flume

    概述 flume是在2011年被首次引入到Cloudera的CDH3分发中,2011年6月,Cloudera将flume项目捐献给Apache基金会.2012年,flume项目从孵化器变成了顶级项目, ...

  4. java类的加载顺序

    related URL: http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html Parent Class: packa ...

  5. SEO学习之路

    一.入门建站篇 1.Wamp集成环境安装 2.Wamp集成环境配置多站点 3.DedeCMS安装及目录结构 4.DedeCMS源码安装 5.DedeCMS官方手册 未完待续...

  6. 【iOS基础】NSURLConnection

    一.大文件下载1.方案:利用NSURLConnection和它的代理方法1> 发送一个请求 // 1.URL NSURL *url = [NSURL URLWithString:@"h ...

  7. 宙斯是一个完整的Hadoop的作业平台[转]

    https://github.com/alibaba/zeus 宙斯(zeus)是什么 宙斯是一个完整的Hadoop的作业平台从Hadoop任务的调试运行到生产任务的周期调度 宙斯支持任务的整个生命周 ...

  8. linux增大交换分区

    进来在批量搭建环境,遇到搭建完环境之后发现swap忘记的情况,后来百度了下,发现了下面的方法,网上可能存在好多相应的帖子说这个事情也比较简单,以下是自己实践的结果,分享给大家. 1.查看现有memor ...

  9. 把Nginx加入系统服务 service nginx (start | stop | restart | reload)

    vim /etc/init.d/nginx 1 #!/bin/bash  2 # nginx Startup script for the Nginx HTTP Server  3 # it is v ...

  10. LINQ更新用户

    public Boolean UpdateUser(int id, string userName, string account, string password, string EkeyID,  ...