Qt5 Qtcreator 使用 main.qml 中的 c++ 函数创建文件 /tmp/

Qt5 Qtcreator 使用 main.qml 中的 c++ 函数创建文件 /tmp/

我想基于 QtQuick2ApplicationViewer 模板为 Ubuntu Touch 编写一个应用程序,并且该应用程序需要写入文件(例如“/tmp/test.log”)。

我使用函数/宏进行了测试Q_INVOKABLE

Q_INVOKABLE void QtQuick2ApplicationViewer::setData3(void) {

    qDebug() << "setData";

}

...并与大家分享Q_INVOKABLE

但是我无法调用我的 .qml 中的函数,并且出现错误:

...main.qml:289: ReferenceError: setData3 "is not defined"

有人有可以下载的 demo.pro 文件吗?

或者使用 cpp-function+qml 创建 .pro 文件进行下载的有效方法?

在 ubuntutouch 的 qtcreator 版本中工作吗?

答案1

我自己找到了解决方案并且我想解释我做错了什么。

我忘了:

主程序

    #include <QQmlEngine>
    #include <QQmlComponent>
    #include "stringhelper.h"
   to 
    qmlRegisterType<StringHelper>("MyStringHelper", 1, 0, "StringHelper");

字符串助手.h:

    ...class...
    .....public slots:...
           Q_INVOKABLE void stringxx(void){
              qDebug() << "  stringhelper.h:stringxx GOT YOU !! :-) ";
           }

现在在 main.qml 中:

    import MyStringHelper 1.0

    StringHelper {
            id: my_StringH
    }

    my_StringH.stringxx();

现在我可以在 .qml 中调用我的 stringxx 函数和更强大的函数

问候 Sascha

相关内容