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)
- 简介
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++定义
-
定义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() |