我想基于 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