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