QT 中的属性,是qt 独有的,将类的信息暴露出来,方便QML 调用
属性系统是qt基于元对象系统,为元对象系统服务提供支持
语法
Q_PROPERTY (TYPE NAME READ function)
示例:
//基础属性 读写重置
Q_PROPERTY(bool focus READ hasFocus WRITE setFocus RESET unsetFocus)
bool hasFocus() const;
void setFocus(bool on);
void unsetFocus();
//以下例子展示了如何使用MEMBER关键字将类数据成员导出为Qt属性。注,NOTIFY signal必须被指定,这样才能被QML使用
Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged)
Q_PROPERTY(qreal spaing MEMBER m_spacing NOTIFY spaingChanged)
Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)
...
signals:
void colorChanged();
void spacingChanged();
void textChanged(const QString &netText);
private:
QColor m_color;
qreal m_spacing;
QString m_text;
属性列表:
参数 | 对参数的理解 |
---|---|
READ | 指定读取属性值的函数,最好是一个 const 函数,函数返回值是该属性的类型或者该属性类型的引用。在没有指定 MEMBER |