QPROPETRY属性
说明
Q_PROPERTY 是 Qt 中的一个宏,是用类中声明属性。如果需要使用该宏,必须要继承 QObject 类或者其子类。QPushButton 则是 QObject 的间接子类,所以继承 QPushButton 类后同样可以使用 Q_PROPERTY 宏。
Q_PROPERTY 属性自带了一些属性,同样程序可以自定义。本实验中只讲解 Q_PROPERTY 自带的属性。
在自定义导航按钮的程序中同样使用了 Q_PROPERTY,且程序中只使用了 Q_PROPERTY 的 READ 属性和 WRITE 属性。
用法
Q_PROPERTY 自带属性:
1 |
|
- 在上面的代码中,方括号 [] 中的内容属性可选。
- 必选
READ
属性:用来读取属性值,因此使用 const 限制,返回值类型必须为属性类型或者属性类型的引用或者指针。 - 可选
WRITE
属性:用来设置属性值,返回值必须为 void 类型,需要一个参数。 - 可选
RESET
属性:能够将值设置为默认状态,返回值为 void 类型且不带参数。 - 可选
NOTIFY
属性:提供一个信号,当值发送改变是该信号会自动被触发。 - 可选
DESIGNABLE
属性:是否在界面设计器的属性编辑器中出现。大多数属性是可见的,除了可以为变量传入 true 或 false 还可以执行一个 bool 行的成员函数。 - 可选
SCRIPTABLE
属性:是够可以被脚本引擎操作(默认为 true)。可以赋予 true 或者 false 或 bool 类型的函数。 - 可选
STORED
属性:是否被认为是独立存在还是依赖于其他的值而存在,也可以表明是否在保存对象状态时保存此属性的值。大多数属性都是需要保存的,但也有例外,例如QWidget::minimumWidth()
就是不被保存的,因为它的值是从另一个属性QWidget::minimumSize()
得来的。 - 可选
USER
属性:是否被设计为面向用户的或用户可修改的类属性。通常,每个类只有一个 USER 属性。例如QAbstractButton::checked
是按钮类的用户可修改属性。注意 QItemDelegate 获取和设置 widget 的 USER 属性。 - 可选
CONSTANT
属性:表示属性的值是不变的。 - 可选
FINAL
属性:表示属性不能被派生类所重写。