• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 求助!qtopia调用脚本程序 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 56430
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
综合积分: 92 分
注册时间: 2011-10-07
最后登录: 2023-03-01
楼主  发表于: 2011-11-12 11:38

 求助!qtopia调用脚本程序

各位大侠帮帮忙,我想编写一个qtopia的应用程序,可以调用一个脚本的,在qt4里可以用QProsess,可是qtopia里好像用不了,那么我用什么方法可以在qtopia里调用脚本呢,就像友善的qt4-starter一样,谢谢啦!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
1楼  发表于: 2011-11-12 14:45
哎,我也是遇到这个问题啊,感觉友善的arm-qtopia编译脚本制作的有些毛病列,我发现在 arm-qtopia 文件夹下面可以查找到qprocess.h

[root@cyx arm-qtopia]# find ./ -name qprocess.h
./qtopia-2.2.0-FriendlyARM/qtopia/src/libraries/qtopia1/qprocess.h
./qtopia-2.2.0-FriendlyARM/qtopia/include/qtopia/qprocess.h
./qtopia-2.2.0-FriendlyARM/dqt/src/kernel/qprocess.h
./qtopia-2.2.0-FriendlyARM/dqt/include/qprocess.h
./qtopia-2.2.0-FriendlyARM/qt2/tools/designer/util/qprocess.h

我在我的程序中添加了 #include <qprocess.h> 这样一行,就有下面的错误:
./qprocess.h:1:50: error: ../../src/libraries/qtopia1/qprocess.h: No such file or directory
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
2楼  发表于: 2011-11-12 14:52
后来我把 ./qtopia-2.2.0-FriendlyARM/qtopia/include/qtopia/qprocess.h 打开看后才发现,它里面的内容就是下面这一行语句:

#include "../../src/libraries/qtopia1/qprocess.h"

我发现真正的qprocess.h 就是上面这个路径之中的内容,所以就干脆把上面路径下的qprocess.h拷贝到我的程序文件夹中,然后修改我的main_form.cpp 使用 #include "qprocess.h" 就可以正常编译了。
星星之火,可以燎原!
级别: 新手上路
UID: 56430
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
综合积分: 92 分
注册时间: 2011-10-07
最后登录: 2023-03-01
3楼  发表于: 2011-11-12 15:02
非常感谢,我试试啊!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
4楼  发表于: 2011-11-12 17:09
我也正在研究这个qtopia2 调用脚本程序的方法,之前参照mini6410的QT开发指南,使用的是 ::system("linux command"); 的方法调用linux命令,但是在qtipia2的单击按钮事件函数之中调用,不起作用哦,如果你研究出来了结果,出来说一下啊,分享一下心得哦!
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
5楼  发表于: 2011-11-12 17:22
在qtopia2之中的qprocess.h 与qt4的qprocess.h之中的start()函数接口不太一样,所以不能使用 start("command"); 来调用外部程序。

我写的按钮单击函数如下:

void TMainForm::yuvButtonClicked()
{
//        ::system("cd /root/Application/mjpg && ./start_uvc_yuv.sh &");

        QProcess *proc = new QProcess;
        proc->addArgument( "cd" );
        proc->addArgument( "/root/Application/mjpg" );
        proc->addArgument( "&&" );
        proc->addArgument( "./start_uvc_yuv.sh&" );
        connect( proc, SIGNAL(readyReadStdout()),
            this, SLOT(readFromStdout()) );

        if ( !proc->start() ) {
        // error handling
        //                 QMessageBox::information(this,tr("Failure"),tr("Start"));
        }
        
        delete proc;
}

但是它也不起作用,我就很纳闷了!一起研究一下吧
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
6楼  发表于: 2011-11-12 21:59
话说上面的那段程序我是根据http://trinitydesktop.org/docs/qt3/qprocess.html 这个网址里面提供的实例写的,但还是不明白那里面的 readyReadStdout(), readLineStdout(), readStderr(), and writeToStdin().等 都有些啥作用
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
7楼  发表于: 2011-11-13 16:02
哎,之前的system()不起作用是因为我的文件夹路径写错了,太大意了,Application少写了一个s , 应该是 /root/Applications/mjpg 的
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
8楼  发表于: 2011-11-13 16:30
不过我的qprocess 最终还是没有调试成功,这个qtopia2下面的qprocess 还真是不知道怎么弄,各位对此熟悉的大侠,可否指导一二!
星星之火,可以燎原!
级别: 新手上路
UID: 56430
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
综合积分: 92 分
注册时间: 2011-10-07
最后登录: 2023-03-01
9楼  发表于: 2011-11-14 08:34

 回 8楼(cyx8648) 的帖子

system可以用,我试了,我是调用qt4程序,但是调用后qtopia还存在,两个界面,没法用,不知道怎样可以调用qt4程序时关闭qtopia,关闭qt4时再打开qtopia,希望大家给点意见!
qprocess我也没有调用成功,不知道咋用
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go