**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])
  1. 必须有一个read函数。它用来读取属性值。因此用Const限定。它的返回值类型必须为属性类型或者属性类型的引用或者指针。不能是其他类型例如:QWidget::hasFocus().

  2. 有一个可选的write函数。它用来设置属性值,它的返回值必须为void型,而起必须要含有一个参数。例如:QWidget::setEnabled()

  3. 一个reset函数能够把property设置成其默认状态,它也是可选的。复位功能必须返回void,并且不带参数,

  4. 一个NOTIFY信号是可选的 。如果定义,它提供了一个信号这个信号在值发生改变时会自动被触发。

  5. 如果定义了"STODE"属性表明这是一直存在的。QWidget::minimumSize()

  6. 一个"DESIGNABLE"属性表明该property能在GUI builder(一般为Qt Designer)可见

  7. USER 属性 表面是否可以被用户所编辑

  8. CONST设定属性是不可修改的 所以不能跟WRITE或者NOTIFY同时出现

  9. 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的使用相关推荐

  1. 【Qt】Q_PROPERTY():属性系统

    一.简介 Qt属性系统基于元对象Meta-Object系统,因此在使用时,需要继承QObject类并添加宏Q_OBJECT,属性除了具有类成员的功能外,还可以通过元对象系统访问,比如可以使用信号和槽机 ...

  2. QT之Qt之Q_PROPERTY宏理解

    在初学Qt的过程中,时不时地要通过F2快捷键来查看QT类的定义,发现类定义中有许多Q_PROPERTY的东西,比如最常用的QWidget的类定义: Qt中的Q_PROPERTY宏在Qt中是很常用的,那 ...

  3. QT笔记——Q_PROPERTY了解

    我们会经常看到有人使用 这个Q_PROPERTY,在下我们来了解一下它是干什么的 READ:用于读取属性值,如果未指定成员变量(通过MEMBER ),则需要读取访问器函数. WRITE:写访问器函数是 ...

  4. Qt——自定义编程风格指南(未完成)

    文章目录 前言 一.头文件模板规则 1. 尽量所有"#include"放在.h文件头部 2. "#include"包含的类顺序 3. 头文件中 变量.函数 属性 ...

  5. Qt文档阅读笔记-Q_PROPERTY解析及实例

    目录 官方解析 博主栗子 官方解析 这个宏用于继承于QObject的类声明属性.这样声明后的属性行为与类数据成员一样,但是他们可以通过元对象系统进行访问. Q_PROPERTY(type name(R ...

  6. Qt工作笔记-Qt之自定义属性Q_PROPERTY

    QT提供了一个成熟的属性系统,但是作为一个跨平台的且与编译器无关的库,qt不依赖于非标准的编译器功能例如 __property or [property]: QT的强大之处在于它可以支持任何标准的c+ ...

  7. 中的枚举属性函数_软件特攻队|Qt中的反射机制之Q_PROPERTY

    接触过Java的同学肯定知道"反射"这一神器,而所谓的反射,指的是对于任意的一个类,即使在运行状态下,都能知道这个类的所有方法和属性,并可以动态调用这些方法的一种机制. 但是非常遗 ...

  8. Qt属性系统及Q_PROPERTY宏的使用

    0.前言 像某些编译器提供的平台特有的属性系统(Property System)一样,Qt也提供了一个复杂的属性系统.当然,作为一个跨平台框架,Qt没有依赖那些非标准的编译器特性,比如:__prope ...

  9. Qt之自定义属性Q_PROPERTY

    Qt提供了一个绝妙的属性系统.跟那些由编译器提供的属性差不多.然而,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译特性,比如__property 或[property].Qt可以在任何平台上 ...

最新文章

  1. Python的with...as的用法
  2. Linux发行版新秀!风格对比苹果
  3. redis持久化策略梳理及主从环境下的策略调整记录
  4. 任正非签发最新电邮:管理者的18种堕怠行为
  5. android Content provider 组件
  6. Vue Devtools 安装
  7. 一大波问题解决和配置备份 WCF快炼成精了
  8. ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
  9. UGUI 在面板经常使用的表格布局制作
  10. 分布式存储系统学习笔记(二)—分布式文件系统(3)—Facebook文件系统(Haystack)
  11. 【工具推荐】光影魔术手
  12. 基于产生式系统方法实现动物识别系统
  13. 万能密码 php,PHP万能密码
  14. as常用固定搭配_as固定短语搭配
  15. win10开机启动ps1脚本
  16. Blur大战Opensea:a16z的奶酪与Paradigm的独食
  17. vivo计算机的功能是什么意思啊,vivo新系统有啥新功能_vivo新系统有什么功能
  18. 依据imu姿态角计算z轴倾角_树莓派小车-07-IMU姿态解算 imu_complementray_filter
  19. 基于Cplex的分支定界
  20. 服务器位置就是上网位置吗,DNS服务器是什么

热门文章

  1. 网络高清车载云台摄像机,白光云台摄像机激光云台摄像机
  2. 被删短信通讯运营商仍保存半年
  3. 霍克HAWKER合力牵引车电池D-400 合力48V400Ah电动牵引叉车蓄电池
  4. 迅视资管 绍兴:非遗大市“非遗文章”
  5. Redis 秒杀案例
  6. 概率论笔记1.1.3事件间的关系
  7. 洛古 P1926 小书童——刷题大军
  8. 2021.12.9洛谷小书童——凯撒密码——c语言
  9. mysql 笛卡尔积_Mysql(笛卡尔积、等值连接、自然连接、外连接)
  10. 在大数据和人工智能时代,我们是否需要分布式流处理?