令人头疼的QML和C++交互
最近公司使用了QML进行界面开发,开发界面确实很高效,而且QML对于触屏、动画的开发尤其友好,用我同事的话说,就是同样是画个矩形,填个颜色,QT需要实例化QPainter,之后画矩形,然后设置画笔,画刷,最后填颜色,QML直接一个Rectangle,甩你18条街。
但是QML也有不好用的地方,就是QML做界面是好做,各种底层功能的支持还是需要使用C++,这就带来了QML和C++的交互问题。
类型转化和糟心的QML文档
以前开发QT,使用QWidgets有什么问题只需要查找文档就好,而使用QML,感觉这个方法失效了,有些文档不仔细找,根本找不到。
这篇文件先说,C++和QML的类型转化问题。我个人总结的方法有两个:
1)使用C++和QML原生都支持的类型,进行参数传递;
2)将C++相关的类,注册进QML的组件或者QML的运行环境,之后进行调用。
由于第二种方法,其实和如何QML调用C++方法这个问题差不多,因此之后再进行讨论,本次只讨论法1.
类型转换-文档推荐用法
QT当中QML和C++类型转化的文档,可在帮助文档中直接搜索**“Data Type Conversion Between QML and C++”**。该文档详细描述了,QML和C++之间的类型转换,