更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

QML界面与C++逻辑分离的一次小尝试

  • 发布:C++培训
  • 来源:资料库
  • 时间:2017-10-13 16:39

最近在项目中,用户提出我们需要使用QML开发项目界面,并且不需要我们实现C++底层逻辑,只需要把接口暴露出来供调用。

我尝试过构想用信号槽机制来实现交互,但是总感觉最后出来的程序会有一大堆的信号和槽函数,很不优雅,并且不易于维护。所以就尝试用其他方法来实现。

为了方便大家理解,我写了一个登录的Demo,Demo的目录结构如下:

implements目录下包含了LoginImplements.js接口定义文件, 这个文件就是我们实现QML界面和C++逻辑分离的关键.

可以看到LoginImplements.js提供的接口:

/*登录函数接口

参数

username: 用户名

password: 密码

返回:

成功:空字符串

失败: 非空字符串, 错误描述

*/

function login(username, password)

{

return "登录函数未实现"

}

这里只是一个定义,是交由客户实现的,我们在QML界面中只需要调用接口定义就OK。

#LoginForm.qmlimport "./implements/LoginImplements.js" as LoginImplements.......Button { .......

onClicked: { //参数检测 //登录 var result = LoginImplements.login(user, pwd) if (result.lenth === 0){ emit: root_item.loginSuccess() } else{ emit: root_item.failedToLogin(result) } }}.......

所以我们只需要根据返回值, 写登录的界面逻辑就好了。

本题源码很简单,所以就不上传了,有需要可以回复 "界面分离" 获取github上的地址

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:达内C++培训班:教你C/C++回调函数
下一篇:C++构造及析构函数执行顺序

超全的C语言标识符知识

C指针——指针类型转换

C指针——指针和结构类型的关系

C指针——数组和指针的关系

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省