以表格方式列出支持那些类型。
Qml类型与Qt类型对照表
Qml类型 | Qt类型 |
---|---|
bool | bool |
int | unsigned int, int |
double | double |
real | float, qreal |
string | QString |
url | QUrl |
color | QColor |
font | QFont |
date | QDateTime |
point | QPoint, QPointF |
size | QSize, QSizeF |
rect | QRect, QRectF |
matrix4x4 | QMatrix4x4 |
quaternion | QQuaternion |
vector2d, vector3d, vector4d | QVector2D, QVector3D, QVector4D |
var,variant | QVariant |
enumeration | 使用Q_ENUM()或Q_ENUMS()声明的枚举 |
js类型与Qt类型对照表
js类型 | Qt类型 |
---|---|
数组 | QVariantList |
对象 | QVariantMap |
Date | QDateTime, QTime |
ArrayBuffer | QByteArray |
js数组与Qt容器支持的类型
QList<int>
QList<qreal>
QList<bool>
QList<QString>
,QStringList
QVector<QString>
std::vector<QString>
QList<QUrl>
QVector<QUrl>
std::vector<QUrl>
QVector<int>
QVector<qreal>
QVector<bool>
std::vector<int>
std::vector<qreal>
std::vector<bool>
- 通过使用Q_DECLARE_METATYPE宏还可以自定义的QList, QVector, QQueue, QStack, QSet, QLinkedList, std::list, std::vector转换到js数组中中。
其他类型方法
- Qml类型的另外实现
Qml实现 | Qt方法 |
---|---|
“10,10,100x100” | Qt.rect(10, 10, 100, 100) |
“0,10” | Qt.point(0, 10) |
“100x100” | Qt.size(100, 100) |
date | Qt.formatDate(“2019-01-01 00:00”), Qt.formatDateTime(“2019-01-01 00:00”) |
- var可以支持的类型
类型 | 值表示 |
---|---|
bool | true |
int | 10 |
double | 1.0 |
real | 1.0 |
string | “This is string.”,String(“This is string.”) |
color | Qt.rgba(0.1, 0.1, 0.1, 0.1) |
rect | Qt.rect(100, 100, 100, 100) |
point | Qt.point(100, 100) |
size | Qt.size(100, 100) |
vector3d | Qt.vector3d(100, 100, 100) |
数组 | [1, “2”, (function() { return “3”; })] |
对象 | { “value1”: 1, “value2”: 2 } |
函数 | (function() { return “OK”; }) |
关于更多
- Qt君公众号后台回复”Qml“获取更多内容。