Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1260265
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类:

2011-03-07 08:13:19


================================================
使用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();
}
细化操作--不打印显示任何的操作结
===========================
总结的时候参考了网的的大家的一些做法:)
 
 
 
 
 
 

注:1.Qt有自己的执行shell命令的方法 QProcess,用法和system基本相似,但用起来更方便
       2.下面的这个可以作为参考,但实际项目中设置IP最好写配置文件
        为了在我的MiniGUI程序里通过界面上的设置修改系统的网络设置,今天研究了下linux C下的shell命令调用。查资料知道能用system函数或exec族函数来实现,我选用了system。
       函数原型:
                         int system(const char *string);
       如设置IP地址,语句为:
                         system("ifconfig eth0 172.23.2.225");
       由于我的程序里,IP地址是由软件盘上输入得到的,存入char型数组netip[16],因此实现设置IP的代码为:
                        char ipaddress[60];
                        sprintf(ipaddress, "ifconfig eth0 %s", ipaddress);
                        system(ipaddress);
       同理,可设置网关和子网掩码:
                       char netset[60];
                       sprintf(netset, "ifconfig eth0 netmask %s", netmask);
                       system(netset);
                       sprintf(netset, "ifconfig eth0 broadcast %s\0", bcast);
                       system(netset);
                        其中,netmask和bcast都是从软件盘输入得到的。
       其实也可以用一个语句设置IP、子网掩码、网关等:
                       sprintf(netset, “ifconfig eth0 %s netmask % broadcast %s”, ipaddress, netmask, bcast);
阅读(973) | 评论(0) | 转发(0) |
0

上一篇:c++note

下一篇:移植tslib到qt-embedded-free-3.3.8

给主人留下些什么吧!~~