美文网首页
qml:.cpp和qml类型转换。

qml:.cpp和qml类型转换。

作者: xqiiitan | 来源:发表于2025-08-07 16:19 被阅读0次

3.cpp和qml类型转换。

基础类型对应转换;
数组类型转换;
map类型转换。

3.1 基础类型对应转换

QtType QML Value Type
bool bool
unsigned int,int int
double double
float,qreal real
QString string
QUrl url
QColor color
QFont font
QDateTime date
QPoint,QPointF point
QSize,QSizeF size
QRect,QRectF rect
QMatrix4x4 matrix4x4
QQuaternion quaternion
QVector2D,QVector3D vector2d,vector3d,vector4d
Enums decleared with Q_EENUM() enumeration.

3.2 数组类型转换

支持的类型QVariantList, QList<int>, QList<qreal>,
QList<bool>, QList<QString>, QStringList,
QVector<QString>, std::vector<QString>, QList<QUrl>
QVector<QUrl>, std::vector<QUrl>,
QVector<int>, QVector<bool>, QVector<real>,
std::vector<int>, std::vector<bool>, std::vector<real>.

//main.qml
    function readArray(arr) {
        print("======readArray=======");
        var str = "" //js写法
        for(var i=0;i<arr.length; i++) {
            str += arr[i] + " "
        }
        print(str);
    }
    //读取js对象。
    function readmap(map) {
        print("======readmap=======");
        var str = "" //js写法
        for(var key in map) {
            str += key + ":" +map[key] + " "
        }
        print(str);
    }

//main.cpp
//传递js数组
//QVariantList varr = {11,22,33,44,55};
//    std::vector<int> varr = {1,2,3,4,5,6};
std::vector<QString> varr = {"1a","2b","3c","4","5e"};
QMetaObject::invokeMethod(ct.get(), "readArray",
                          Q_ARG(QVariant, QVariant::fromValue(varr)) // 包装为 QVariant);
                          );
//map传递
QVariantMap maps;
maps["name"] = "name1";
maps["url"] = "jd.com";
QMetaObject::invokeMethod(ct.get(), "readmap",
                          Q_ARG(QVariant, QVariant::fromValue(maps)) // 包装为 QVariant);
                          );

相关文章

  • 说说QtQuick提供的类型

    Qt Quick 提供了标准qml类型,可视化类型,动画类型以及其他qml类型。 标准qml类型 官网的介绍原文请...

  • QWidget 调用 QML 插件中的对象

    目标 为实现从QML字符串中创建QML对象,并显示在基于QWidget项目工程中,且这个QML对象所属类型来自QM...

  • C++调用QML代码

    C++调用QML实际上就是通过 QML 对象的指针去访问QML对象的属性和方法 只要获取到QML对象的指针,接下来...

  • Record one usage of 'qml signal'

    ArMap.qml ArCanvas.qml

  • QT - QML对象属性

    QML对象属性 每个QML对象类型都有一组定义的属性。使用为该对象类型定义的属性集创建对象类型的每个实例。可以指定...

  • QML Loader使用

    能在qml组件需要的时候再创建,即延迟创建QML的时间,类似ios懒加载 main.qml page1.qml p...

  • Qt/QML 插件系统

    Qt/QML 插件系统 本文将简要介绍一下 Qt 和 QML 的插件系统,并用几个简单的示例介绍 QML 的几种插...

  • Qml自定义组件的使用

    Component是可重用的、封装的、具有定义良好的接口的QML类型。组件通常由组件文件定义,即.qml文件。组件...

  • QML 组件

    参考:QML Tutorial 2 - QML Components - Qt for Python[https:...

  • 官方提供的基础指南一

    1.Hello World 程序 2.QML 实现GUI界面 QML 使用声明式语法实现GUI界面,要使用QML实...

网友评论

      本文标题:qml:.cpp和qml类型转换。

      本文链接:https://www.haomeiwen.com/subject/fsosojtx.html