Qt - 元对象系统 - 动态属性系统(动态属性[上])

Qt元对象系统(Meta-Object System)

动态属性系统

在标准C++中,为了保证封装性,我们经常声明一个私有变量,然后声明两个公有函数,即set函数和get函数。在Qt中我们可以使用宏Q_PROPERTY()宏来实现这些。一个属性可以使用常规函数QObject::property()和QObject::setProperty()进行读写,不用知道属性所在类的任何细节,除了属性的名字。 Q_PROPERTY()原型:

Q_PROPERTY(type name
         (READ getFunction [WRITE setFunction] |
MEMBER memberName [(READ getFunction | WRITE setFunction)])
         [RESET resetFunction]
         [NOTIFY notifySignal]
         [REVISION int]
         [DESIGNABLE bool]
         [SCRIPTABLE bool]
         [STORED bool]
         [USER bool]
         [CONSTANT]
         [FINAL])

示例: 1.新建桌面应用程序TestProperty,父类QWidget,其他采用默认。 2.右键单击项目添加自定义类MyPropertyClass,父类QObject. 3.mypropertyclass.h文件中Q_OBJECT下方声明属性宏: 4.声明属性读取、设置函数,定义属性变更时发送的信号,定义成员变量m_mask保存属性值。 5.widget.h添加槽函数声明 6.Widget类构造函数中添加如下代码

具体

[] 中括号的内容是可选的 注意这一点

结语:

时间: 2020-07-27

经验分享 程序员 微信小程序 职场和发展