QML 1【QML类型系统: The QML Type System】

QML文档中的类型来源:

类型来源描述
QML语言本地类型
C++注册的QML模块
QML文档的QML模块

QML基本类型(QML Basic Types)

类型
QML语言提供的基本类型【bool】【double】【enumeration】【int】【list】【real】【string】【url】【var】
QML模块提供的基本类型【date】【point】【rect】【size】

JavaScript类型(JavaScript Types)

JavaScrpit对象和数组都被QML引擎(QML engine)支持.
任何标准的JavaScript类型可以通过通用类型var创建和保存.

QML对象类型(QML Object Types)

  1. 简介
QML对象类型 继承QtObject.
QML 提供的对象类型:
		Binding							创建对象间的属性绑定
		Component						QML组件
		Connections						创建对象连接QML信号
		Date							日期时间类型
		Instantiator					动态创建对象
		Locale
		LoggingCategory					日志
		Number							数值类型
		Qt								一个全局对象,提供工具函数,属性,枚举.
		QtObject						QML基本类型
		String							字符串类型
		Timer							定时器类型
定义QML对象类型的方式:
		QML定义:  【通过QML文档定义QML对象类型】【通过Component定义匿名QML对象类型】
		C++定义
  1. 定义QML对象类型的方式
    2.1 QML方式
    2.1.1 通过QML文档定义QML对象类型

    2.1.2 通过Component定义匿名QML对象类型

  Item {
      id: root
      width: 500; height: 500

      Component {	//匿名对象类型
          id: myComponent
          Rectangle { width: 100; height: 100; color: "red" }
      }

      Component.onCompleted: {
          myComponent.createObject(root)
          myComponent.createObject(root, {"x": 200})
      }
  }

2.2 C++方式
2.2.1 向QML类型系统注册C++类型
2.2.1.1 注册可实例化的对象类型

  class Message : public QObject
  {
      Q_OBJECT
      Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged)
      Q_PROPERTY(QDateTime creationDate READ creationDate WRITE setCreationDate NOTIFY creationDateChanged)
  public:
      // ...
  };
  /*注册方式*/
  qmlRegisterType<Message>("com.mycompany.messaging", 1, 0, "Message");

2.2.1.1 注册非实例化的对象类型

注册方式描述
qmlRegisterType()
qmlRegisterInterface()
qmlRegisterUncreatableType()
qmlRegisterSingletonType()

2.2.1.3 注册扩展对象类型

注册方式描述
qmlRegisterExtendedType()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值