繁体   English   中英

Qt:导入Javascript资源中的Qml模块

[英]Qt: Import Qml Module in imported Javascript resource

我喜欢从导入的 js 资源(qml ->.js -> 模块)中访问已注册的 QObject。 从 QML 访问有效,但如 js 文件中的文档中所述,使用“.import”无效。 一些相关问题让人觉得它可能有效另一个)或无效

这通常是可能的吗?如何,只对某些模块可能,还是根本不可能?

带有控制台输出注释 output 的代码:

main.cpp

[...]
qmlRegisterSingletonInstance<MyModule>("org.example.MyModule", 1, 0, "MyModule", (new MyModule()));
[...]

MyModule.hpp

#pragma once
#include <QObject>
class MyModule : public QObject
{
    Q_OBJECT
public:
    enum SOMETHING { AAA, BBB, CCC, DDD, EEE, FFF };
    Q_ENUM(SOMETHING)
};

main.qml

import org.example.MyModule 1.0
import "qrc:/something.js" as Something
[...]
console.log(MyModule, MyModule.DDD)// prints something like: "MyModule(0x....) 3"
[...]
Something.doit()
[...]

something.js

.import org.example.MyModule 1.0 as MyModule
[...]
console.log(MyModule, MyModule.DDD) // prints something like: "[object Object] undefined"
[...]

从支持那里得到答案:显然,您需要在 Module 前面加上导入命名空间,即MyModule.MyModule.DDD而不是MyModule.DDD

.import org.example.MyModule 1.0 as MyModule
[...]
console.log(MyModule.MyModule, MyModule.MyModule.DDD)
[...]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM