QML Training Course 7 QML and C++

这篇博客介绍了如何在QML中使用Q_PROPERTY宏声明属性,并通过Q_INVOKABLE宏使得C++成员函数可以在QML环境中调用。详细讲解了属性系统的必要组件,如READ、WRITE、NOTIFY等,以及如何注册C++类型到QML上下文,将C++模型暴露给QML。
摘要由CSDN通过智能技术生成

Q_PROPERTY

  • Qt提供了一个复杂的属性系统, 类似 某些编译器供应商 提供的属性系统
  • 适用于每个 Qt 支持的任何标准C++编译器
  • 基于元对象系统,该系统也可以通过 信号 和 插槽 提供对象间通信

Meta-Object 元对象系统:

  • Qt的元对象系统为对象间通信提供了信号和槽机制, 运行时类型信息和动态属性系统。

Meta-object system 元对象系统基于 以下三种东西:

  • QObject 类为元对象系统提供了一个基类。
  • 类声明内的 私有部分的 Q_OBJECT宏 用于启用 元对象功能, 如动态属性、信号和槽。
  • 元对象编译器 (moc) 为每个 QObject 子类提供实现元对象功能所需的代码。

为了声明一个property 属性, 使用 Q_PROPERTY()宏, 该类需继承 QObject

Q_PROPERTY(type name
	(READ getFunction [WRITE setFunction] | 
	MEMBER memberName [(READ getFunction | WRITE setFunction)])
	[RESET resetFunction]
	[NOTIFY notifySignal]
	[REVISION int]
	[DESIGNABLE bool]
	[SCRIPTABLE bool]	
	[STORED bool]
	[USER bool]
	[CONSTANT]
	[FINAL])
  • 如果 MEMBER 没有指定的话, READ 函数是必须的. READ const 函数用于读取 property值, 返回 1. property's type, 2. const reference to the type
  • WRITE 访问器 是 optional, 用于
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值