qml和C++类的交互方法
直入主题,主要记录C++和QML混合编程的方式以及相关函数的用法。
一:int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName)
工程文件:
customquck.h
customquck.cpp
main函数:
qml写法:
运行结果:
把main函数的注册函数稍做修改:
再次运行发现抱错:
修改main.qml
再次运行:
发现也是可以正常运行的。
查看了源码发现:
第二种方法:
调用结果:
单击一次后,显示字符串。
两种比较:
两种方法的区别
(1) 方法1需要创建实例才能使用,而方法2则是只有一个全局实例,在setContextProperty就已经创建了;
(2) 方法1学要在qml的import导入, 如下例(CustomQuck为注册的字符串,1.0为注册定义的版本号);
import com.lsy.customquick 1.0
(3) 方法1生命周期在本页面,方法2生命周期是全局;
(4)方法1注册的字符串第一个字母必须为大写。要不然会报错。