QT里面Q_PROPERTY的使用
**Q_PROPERTY()**是一个宏,用来在一个类中声明一个属性property,由于该宏是qt特有的,需要用moc进行编译,故必须继承于QObject类。
Q_PROPERTY(type name READ getFunction [WRITE setFunction] [RESET resetFunction] [NOTIFY notifySignal] [DESIGNABLE bool] [SCRIPTABLE bool] [STORED bool] [USER bool] [CONSTANT] [FINAL])
必须有一个read函数。它用来读取属性值。因此用Const限定。它的返回值类型必须为属性类型或者属性类型的引用或者指针。不能是其他类型例如:QWidget::hasFocus().
有一个可选的write函数。它用来设置属性值,它的返回值必须为void型,而起必须要含有一个参数。例如:QWidget::setEnabled()
一个reset函数能够把property设置成其默认状态,它也是可选的。复位功能必须返回void,并且不带参数,
一个NOTIFY信号是可选的 。如果定义,它提供了一个信号这个信号在值发生改变时会自动被触发。
如果定义了"STODE"属性表明这是一直存在的。QWidget::minimumSize()
一个"DESIGNABLE"属性表明该property能在GUI builder(一般为Qt Designer)可见
USER 属性 表面是否可以被用户所编辑
CONST设定属性是不可修改的 所以不能跟WRITE或者NOTIFY同时出现
FINAL表明该属性不会被派生类中重写
类型,属性名和READ(读)方法是必须的
需要对里面的方法进行定义
//定义一个bool类型的变量isChecked,读取变量的方法是getChecked,写变量的方法是setCheckedQ_PROPERTY(bool isChecked READ getChecked WRITE setChecked)
bool ImageSwitch::getChecked() const
{return isChecked;
}
void ImageSwitch::setChecked(bool a) const
{isChecked = a;
}
QT里面Q_PROPERTY的使用相关推荐
- 【Qt】Q_PROPERTY():属性系统
一.简介 Qt属性系统基于元对象Meta-Object系统,因此在使用时,需要继承QObject类并添加宏Q_OBJECT,属性除了具有类成员的功能外,还可以通过元对象系统访问,比如可以使用信号和槽机 ...
- QT之Qt之Q_PROPERTY宏理解
在初学Qt的过程中,时不时地要通过F2快捷键来查看QT类的定义,发现类定义中有许多Q_PROPERTY的东西,比如最常用的QWidget的类定义: Qt中的Q_PROPERTY宏在Qt中是很常用的,那 ...
- QT笔记——Q_PROPERTY了解
我们会经常看到有人使用 这个Q_PROPERTY,在下我们来了解一下它是干什么的 READ:用于读取属性值,如果未指定成员变量(通过MEMBER ),则需要读取访问器函数. WRITE:写访问器函数是 ...
- Qt——自定义编程风格指南(未完成)
文章目录 前言 一.头文件模板规则 1. 尽量所有"#include"放在.h文件头部 2. "#include"包含的类顺序 3. 头文件中 变量.函数 属性 ...
- Qt文档阅读笔记-Q_PROPERTY解析及实例
目录 官方解析 博主栗子 官方解析 这个宏用于继承于QObject的类声明属性.这样声明后的属性行为与类数据成员一样,但是他们可以通过元对象系统进行访问. Q_PROPERTY(type name(R ...
- Qt工作笔记-Qt之自定义属性Q_PROPERTY
QT提供了一个成熟的属性系统,但是作为一个跨平台的且与编译器无关的库,qt不依赖于非标准的编译器功能例如 __property or [property]: QT的强大之处在于它可以支持任何标准的c+ ...
- 中的枚举属性函数_软件特攻队|Qt中的反射机制之Q_PROPERTY
接触过Java的同学肯定知道"反射"这一神器,而所谓的反射,指的是对于任意的一个类,即使在运行状态下,都能知道这个类的所有方法和属性,并可以动态调用这些方法的一种机制. 但是非常遗 ...
- Qt属性系统及Q_PROPERTY宏的使用
0.前言 像某些编译器提供的平台特有的属性系统(Property System)一样,Qt也提供了一个复杂的属性系统.当然,作为一个跨平台框架,Qt没有依赖那些非标准的编译器特性,比如:__prope ...
- Qt之自定义属性Q_PROPERTY
Qt提供了一个绝妙的属性系统.跟那些由编译器提供的属性差不多.然而,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译特性,比如__property 或[property].Qt可以在任何平台上 ...
最新文章
- Python的with...as的用法
- Linux发行版新秀!风格对比苹果
- redis持久化策略梳理及主从环境下的策略调整记录
- 任正非签发最新电邮:管理者的18种堕怠行为
- android Content provider 组件
- Vue Devtools 安装
- 一大波问题解决和配置备份 WCF快炼成精了
- ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
- UGUI 在面板经常使用的表格布局制作
- 分布式存储系统学习笔记(二)—分布式文件系统(3)—Facebook文件系统(Haystack)
- 【工具推荐】光影魔术手
- 基于产生式系统方法实现动物识别系统
- 万能密码 php,PHP万能密码
- as常用固定搭配_as固定短语搭配
- win10开机启动ps1脚本
- Blur大战Opensea:a16z的奶酪与Paradigm的独食
- vivo计算机的功能是什么意思啊,vivo新系统有啥新功能_vivo新系统有什么功能
- 依据imu姿态角计算z轴倾角_树莓派小车-07-IMU姿态解算 imu_complementray_filter
- 基于Cplex的分支定界
- 服务器位置就是上网位置吗,DNS服务器是什么