zoukankan      html  css  js  c++  java
  • C++调用QML中的函数

    参考:https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html#invoking-qml-methods

    一、调用说明

    所有QML的函数(方法)都暴露在元对象系统中,并且在C++中可以使用QMetaObject::invokeMethod()调用。您可以指定参数的类型和冒号字符后的返回值,如下面的代码段所示。

    二、QML代码

    // MyItem.qml
    import QtQuick 2.0
    
    Item {
        function myQmlFunction(msg: string) : string {
            console.log("Got message:", msg)
            return "some return value"
        }
    }

    三、C++代码

    // main.cpp
    QQmlEngine engine;
    QQmlComponent component(&engine, "MyItem.qml");
    QObject *object = component.create();
    
    QString returnedValue;
    QString msg = "Hello from C++";
    QMetaObject::invokeMethod(object, "myQmlFunction",
            Q_RETURN_ARG(QString, returnedValue),
            Q_ARG(QString, msg));
    
    qDebug() << "QML function returned:" << returnedValue;
    delete object;
    坚持成就伟大
  • 相关阅读:
    封装和参数调用(格式修改)
    今天休息
    2018.1.9内部类
    2018.1.8转型
    环境变量
    环境变量
    计算机的高级语言
    常用的设计模式
    常用的设计模式
    【python3】中 elif 的使用
  • 原文地址:https://www.cnblogs.com/xian-yongchao/p/15377184.html
Copyright © 2011-2022 走看看