Home

cubie.cc CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 645|回复: 1

QT中的qml项目调用shell命令,并获取返回值方法

[复制链接]

6

主题

0

好友

495

积分

中级会员

Rank: 3Rank: 3

贡献
97
金钱
198
威望
96
买家信用
卖家信用
积分
495
发表于 2017-4-21 15:41:04 |显示全部楼层
在qml项目,当需要调用开发板中的shell脚本或者命令并获取返回值时,我们需要以下几步:
1.通过qml调用c++代码
2.c++调用shell命令并获取返回值传给qml

具体步骤内容:
1.通过qml调用c++代码
   1.1 我们首先得创建一个c++的.h文件跟.cpp文件,这里为thinclint.h跟thinclint.cpp

   1.2 在main.cpp文件里加入连接代码,将创建的c++类传给qml,这里将类ConnectThread的实例cTread传给qml

   
2.c++调用shell命令并获取返回值传给qml
   2.1 在c++的.h文件中的类里面加入槽函数,这个槽函数就是能被qml调用的函数,public slots:下的都是可以被qml调用的槽函数

   2.2 在c++的.cpp文件里面实现类的槽函数,在这里开始调用shell命令
         2.2.1 调用shell命令有几种方式
                  QProcess::execute("/shellDir",arguments);直接通过QProcess::execute调用,第一个参数为shell脚本路径,第二个参 数为需要传给脚本的参数
                   QProcess *p = new QProcess;//新建一个进程类
                   p->start("shellDir",argument);//调用shell脚本
                   p->waitForFinished(30000); // 等待执行完成时间
                   QByteArray outPut = p->readAllStandardOutput(); //获取shell脚本的标准输出
                   QString result = outPut;//将结果转为字符串
                   return result;//返回结果
                   p->close();//关闭进程

   
     2.2.2 qml调用check函数,并获取返回值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册


  • data/attachment/forum/201704/21/151320yb7wms8vnmny9nx9.png
  • data/attachment/forum/201704/21/151642y2x5rbrrf5xrx1rj.png
  • data/attachment/forum/201704/21/151939fwlgxwmtraptt1wc.png
  • data/attachment/forum/201704/21/152630chh6ylsnvwhh0uwz.png
  • data/attachment/forum/201704/21/153929mt1lt1dxxbdob1pt.png

回复

使用道具 举报

0

主题

0

好友

457

积分

中级会员

Rank: 3Rank: 3

贡献
90
金钱
186
威望
90
买家信用
卖家信用
积分
457
发表于 2017-4-22 17:38:17 |显示全部楼层
返回值这块可以用property binding做,返回的结果可以动态显示出来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|邮件群发|cubie.cc---深刻的嵌入式技术和应用讨论中文社区 ( 粤ICP备13051116号-1  

GMT+8, 2017-10-19 17:14 , Processed in 0.024975 second(s), 13 queries , Apc On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc. | Style by Coxxs

回顶部