- 威望
- 96
- 金钱
- 198
- 贡献
- 97
- 买家信用
 - 卖家信用
 - 最后登录
- 2017-10-17
- 精华
- 0
- 积分
- 495
- 阅读权限
- 30
- 注册时间
- 2017-4-11
- 帖子
- 8
 
- 贡献
- 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函数,并获取返回值
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
|