CubieBoard中文论坛

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

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

[复制链接]
发表于 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函数,并获取返回值

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2017-4-22 17:38:17 | 显示全部楼层
返回值这块可以用property binding做,返回的结果可以动态显示出来。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-25 15:09 , Processed in 0.021748 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部