鱼C论坛

 找回密码
 立即注册
查看: 2928|回复: 0

[技术原创] 106-属性系统(Property System)-【扫盲】

[复制链接]
发表于 2016-10-21 16:24:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2016-10-28 16:50 编辑

0.jpg


一上来先把图招呼上~

为啥?

为的是不为啥。。。

Qt提供了基于元对象系统的属性系统。

很牛x!!!

因为这样在Qt平台上就可以支持任意的标准C++编译器!!!

要声明一个属性,那么该类必须继承自QObject类,还要声明使用Q_PROPERTY()宏,没错就是一上来那张图。

我来解释下哈

type表示属性的类型,他可以是QVariant支持的类型或者用户自定义的类型。

name就是属性的名称。

READ后面是读取该属性的函数,这个函数必须要有!后面带有‘[]’表示这些函数是可选的。

一个属性类似于一个数据成员,不过他添加了一些可以通过元对象系统访问的附加功能:

  • 一个读(READ)访问函数,用来读取属性的值

    该函数是必须有的,用来读取属性的取值。

    这个函数一般是const类型那个的,返回值类型必须是该属性的类型,或者该属性类型的指针或者引用。
  • 一个可选的写(WRITE)访问函数,用来设置属性的值

    这个函数必须只有一个参数,而且他的返回值必须为空void

  • 一个可选的重置(RESET)函数,用来将其属性恢复到一个默认的值

    这个函数不可能有参数,而且返回值必须为空void。

  • 一个可选的通知(NOTIFY)信号

    如果使用该选项,那么每当属性的值改变时都要发射一个指定的信号。

  • 可选的可设计的(DESIGNABLE)属性表明在GUI设计器编辑中是否可见

    大多数属性的该值true,可见

  • 可选的脚本的(SCRIPTABLE)属性表明是否可以被脚本引擎(scrpting engine)访问

    默认值true,可见

  • 可选的存储(STORED)属性表明是否在当对象的状态被存储时也必须存储这个属性的值

    默认值true,可见
  • 可选的使用(USER)属性表明是否被设计为该类的面向用户或者用户可编辑的属性

    一般,每一个类中只有一个USER属性,默认值false。

  • 可选的常量(CONSTANT)属性表明是一个常量。

    对于给定的一个对象实例,每一次使用常量属性的READ方法都必须返回相同的值

    但对于不同的实例,这个常量可以不同。

    一个常量属性不可以有WRITE方法和NOTIFY信号

  • 可选的不可重写(FINAL)属性表明不能被派生类重写。



其中的READ、WRITE、RESET函数可以被继承,也可以是虚(Virtual)的。

当在多继承时,他们必须继承自第一个父类。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 13:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表