标签:
Qt提供了灵活的属性系统,它基于Qt的元对象系统,不依赖于编译器,这保证了Qt独立于编译其和平台的特点。这篇文章主要看看如何声明属性。
声明在qwidget.h中:至此,这个属性才算完整。整理一下,Qt只读属性声明的一般形式为:
public:
bool isModal() const;
实现在qwidget.cpp中:
inline bool QWidget::isModal() const
{ return data->window_modality != Qt::NonModal; }
#ifndef COBJ_H
#define COBJ_H
#include <QObject>
class CObj : public QObject
{
Q_OBJECT
Q_PROPERTY(bool testFlag READ isInTest)
public:
explicit CObj(QObject *parent = 0);
signals:
public slots:
public:
bool isInTest(void) const;
};
#include "cobj.h"
CObj::CObj(QObject *parent) : QObject(parent)
{
}
bool CObj::isInTest(void) const
{
return (true);
}
通过上面的代码的,我们为CObj声明了一个testFlag的属性,testFlag是bool型,testFlag的读函数为isInTest。可以这么说,属性系统是在实现了类的功能之后加进去的,先写好成员函数,然后在加属性,应该是这么一个顺序。
标签:
原文地址:http://blog.csdn.net/taohe_0/article/details/51353277