| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> QML学习十一:C++与QML交互_创建自定义对象 -> 正文阅读 |
|
[C++知识库]QML学习十一:C++与QML交互_创建自定义对象 |
若该文为原创文章,转载请注明原文出处 此篇记录下Object类如何和QML交互的。工程模板还是以Hello_qml工程来测试。 一、创建Object类1、创建C++类在工程创建C++类,基础类一定要选择QObject,继承QObject,类名为MyObject. ?2、创建属性创建两个属性,以便QML访问,即在myobject.h中创建两个变量,一个int型,一个String型。 ?然后光标定位到变量上,按ALT+ENTER, 选择Generate Q_PROPERTY and Missing Members,如果没有选择项,可以直接自己编写。 ?确定后会生成以下内容,我们需要注意的是Q_PROPERTY属性,在此我C++类我们创建完成了。但现在访问是无法访问的,还需要注册类。 ?3、注册?注册有两种方式: 一、直接在main.cpp内创建obj,然后用setContextProperty注册,在此我们不测试 ?二、注册单例模式 注册单例模式是在项目中常用到的,那如何写一个单例呢?这里只是个例子,仅供参考。 一、修改myobject.h ?二、修改myobject.cpp ?三、在main.cpp注册单例 到此注册单例模式结束,但现在编译运行,在QML中还是无法访问,为什么呢?原本访问INT或STRING等变量是正常的,现在访问的是类,QML是不认识的,其实也很简单,只需要增加一个宏QML_ELEMENT,那么QML就可以识别了。 四、添加宏 在myobject.h添加宏 ?在.pro文件里添加下面的,MyObj就是我们要导入的模块。 通过上面步骤,我们就实现了QML和C++自定义类的交互。 在实际项目,其实注册方式我们也不是用上面的二种方式,而是使用qmlRegisterType来注册。 二、完整代码1、main.cpp
2、myobject.h
3、myobject.cpp
4、结果?三、总结1、自定义对象一定要继承QObject。 2、在实际项目,使用qmlRegisterType来注册。 3、值得注意的是Q_PROPERTY属性。 如有侵权,请及时联系博主删除,VX:18750903063 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 6:21:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |