1.QPerson类的定义
#ifndef QPERSON_H
#define QPERSON_H
#include<QObject>//加入<QObject>
class QPerson:public QObject
{
Q_OBJECT
//为类的元对象定义"名称-值"信息
Q_CLASSINFO("auther","Wang")
Q_CLASSINFO("company","UPC")
Q_CLASSINFO("version","1.0.0")
//定义属性
Q_PROPERTY(int age READ age WRITE setAge NOTIFY ageChanged)//没有MEMBER关键字,必须设置READ
Q_PROPERTY(QString name MEMBER m_name)//设置了MEMBER,无需设置READ和WRITE属性
Q_PROPERTY(int score MEMBER m_score)
private:
int m_age=10;
QString m_name;
int m_score=79;
public:
explicit QPerson(QString fName,QObject *parent=nullptr);
int age();
void setAge(int value);
void incAge();//发送ageChanged信号的函数
//定义了一个信号
//信号函数必须是无返回值的函数
//只需在某些条件下发送信号
signals:
ageChanged(int value);
public slots:
public:
QPerson();
};
#endif // QPERSON_H
2.元对象特性的使用
(1)QmyWidget类定义
#ifndef QMYWIDGET_H
#define QMYWIDGET_H
#include <QWidget>
#include<qperson.h>//加入qperson.h文件
#include<QTextEdit>
namespace Ui {
class QmyWidget;
}
class QmyWidget : public QWidget
{
Q_OBJECT
private://定义两个QPerson类型的指针变量
QPerson *boy;
QPerson *girl;