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注册的字符串第一个字母必须为大写。要不然会报错。

源码下载:https://download.csdn.net/download/lsyrhz/11152695

猜你喜欢

转载自blog.csdn.net/lsyrhz/article/details/89702808