热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT属性系统

#ifndefMYCLASS_H#defineMYCLASS_H#includeclassMyClass:publicQObject{Q_OBJECTQ_PR

#ifndef MYCLASS_H
#define MYCLASS_H#include class MyClass : public QObject
{Q_OBJECTQ_PROPERTY(QString userName READ getUserName WRITE setUserName NOTIFY userNameChanged) //注册属性userName
public:explicit MyClass(QObject *parent = 0);//实现READ读函数QString getUserName() const{return m_userName;}//实现write写函数void setUserName(QString userName){m_userName = userName;//当属性值改变时发射该信号emit userNameChanged(userName);}signals:void userNameChanged(QString); //声明NOTIFY通知消息
public slots:
private:QString m_userName; //私有变量,存放userName属性的值
};#endif // MYCLASS_H

#include "widget.h"
#include "ui_widget.h"
#include "myclass.h"
#include
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);MyClass* my &#61; new MyClass(this); // 创建MyClass类实例connect(my,&MyClass::userNameChanged,this, &Widget::userChanged);my->setUserName("yafei"); // 设置属性的值//使用QObject类的setProperty函数设置属性的值qDebug()<<"userName1:"<getUserName();my->setProperty("userName", "linux");//输出属性的值&#xff0c;这里使用了QObject类的property函数&#xff0c;他返回的值类型为QVariantqDebug()<<"userName2:"<property("userName").toString();
}Widget::~Widget()
{delete ui;
}void Widget::userChanged(QString userName)
{qDebug()<<"user changed:"<}

 


推荐阅读
author-avatar
停止离开静悄悄
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有