我想创建一个全局函数,可以在其他qml文件中的任何地方调用。尝试将一个函数放在矩形内部,但在下一个对象中给我语法错误。我不想使用单例,因为语法会像Singleton.foobar。我只想在其他qml中的任何地方使用foobar。
Rectangle {
function foobar(v) {
return v * 2;
}
}
ApplicationWindow { // syntax error here
}
...
class MyCPPObject : public QObject
{
Q_OBJECT
public:
...
Q_INVOKABLE bool funToCallFromJS(int any, QString args);
...
...
MyCPPObject cppobj;
...
...
QJSValue wrapobj = engine.newQObject(&cppobj);
engine.globalObject().setProperty("cppFun", wrapobj.property("funToCallFromJS"));
...
在引擎存在的同时,wrapobj也必须存在(再次简化) 4. 在QML和JS中:
...
if(cppFun(127, "abc"))
console.log("It works!");
...
Singleton
中进行存储。但如果是关于库的话,我认为库是正确的方式。为什么不呢? - derM