Qt提供了灵活的属性系统,它基于Qt的元对象系统,不依赖于编译器,这保证了Qt独立于编译其和平台的特点。这篇文章主要看看如何声明属性。
Q_PROPERTY(bool modal READ isModal)
这里出现了5个元素:Q_PROPERTY、bool、modal、READ、isModal。这五个元素都是啥作用呢?
Q_PROPERTY:用于声明属性的宏;
bool:属性类型;
modal:属性名称;
READ isModal:这两个元素是一组,放在一起表示读取该属性的接口为isModal。
这个宏声明完成声明属性的工作么?从声明本身来说算是完成了,但是从实现角度看还没有,我们还得将这个属性用到的成员函数实现了。
再看QWidget的代码,有isModal声明也有相关的实现: