多语言展示
当前在线:372今日阅读:195今日分享:41

如何使用Qt中的Q_PROPERTY宏?

Qt中的Q_PROPERTY宏在qt中是很常用的,尤其是当你要混合qtqml和qtC++的时候,并且当你接触到qt的元对象系统内部实现的时候,你就会发现这个宏经常看到,所以学会使用Q_PROPERTY宏毫无疑问,是你从初级到高级的必经之路。
工具/原料
1

QtCreator

2

Qt编译器

方法/步骤
1

要使用Q_PROPERTY宏,你的类必须是继承自QObject的,属性就像是类的数据成员,但是在元对象系统中,它的其他特性是到处可见的。我们使用这个宏的时候,注意两个问题:1)类型,属性名和READ(读)方法是必须的。也就是前三个参数可必须有的。类型可以是QVariant支持的任一类型,又或者是我们自定义的类型,其他是可选的。下面的title属性定义可以这么来说明:定义一个属性title,类型是QString,读title的方法是title()函数,写title的方法是setTitle,这里USER表示是否用户自定义类型,这里应该设置为false。

2

下面我们创建一个具体的类的示例,完整的用法如下:

3

属性声明完了以后,我们还需要进行读写函数的声明和定义,这里只是说明title属性的读写操作方法,以及说明我们已经把title设置为元对象系统中的一个属性了,但是我们的读写函数依然是要进行声明和定义的。这里读方法是读取成员m_title的值并返回,写方法是设置title的值为m_title,具体如下:

4

这里我们主要创建的是QtQuick工程,所以我们需要修改一下以上属性声明和方法定义,我们还需要有一个信号,通知qml中的对象,title改变了。

5

然后我们还要在main函数中注册这个类,导出到qml中,如下图:

6

最后我们在qml中调用title属性,如下:

7

运行结果如下:

注意事项

注意代码中,继承的QObject类是public继承方式,上面忘了写了,特此改正。

推荐信息