日志
Qt 常用宏-----Q_PROPERTY
2017-03-24 12:46
Qt 中的宏确实挺有意思为我们提供了很多增强代码功能的方式,比如Q_PROPERTY 和 Q_ENUM。
先来看看Q_PROPERTY: 顾名思义属性的意思,确实它是用来为我们的custom class (Inherited :qobject)添加属性的。借助Qt的文档来学习一下它的用法。 Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged) 增加属性嘛,属性是谁,啥类型,访问权限及function.....就需要了解一下喽: 括号中的字段: 属性类型 属性名 读权限 readFunctionName 写权限 writeFunctionName 信号 signalFunctionName 有一个宏观认识后那就来深入研究一下吧: 先写一段代码 class MyClass : public QObject { Q_OBJECT Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged) Qt 明确指出 READ is required 大概是说属性必须得知道其值才有意义吧!!!! public: MyClass(QObject* parent = 0); ~MyClass(); void setPriority(Priority priority){ //写属性 与c#中的set 是类似的 m_priority = priority; emit priorityChanged(priority); //属性改变发出信号 } Priporty priority () const { //读属性 与c#中的get类似 return m_priority; } signals: void priorityChanged(Priority); private: Priority m_priority;//使用此成员你可以存储你的属性值(类似于c# 中的字段) }; 好了,先写到这儿吧至于属性如何用和Q_ENUM 一起记。 |
下一篇: 告诉meta-object system你的enum type
上一篇: QLabel 使用总结