我正在努力使用自定义QML模块。奇怪的是,当我在Linux(Ubuntu)上构建并运行完美时,它可以工作,但是当我在Windows上构建并运行时,我得到以下运行时错误
未安装模块jbQuick.Charts。
我的根项目目录包含一个文件夹A a; // no problem with a
E (a, B()) ; // You need to have a rvalue for b
,其中包含qml/jbQuick/Charts
和QML文件。 QML目录添加在qmldir
文件中:
.pro
qml目录添加在main.cpp文件中:
QML_IMPORT_PATH = qml
在我要使用自定义模块的QML文件中,我声明:
QQmlApplicationEngine engine;
engine.addImportPath(QStringLiteral("jbQuick/Charts"));
engine.addImportPath(QStringLiteral("qml"));
我错过了什么吗?这是一个已知的问题?
答案 0 :(得分:3)
最可能的原因是在Windows系统上对相对路径的解释不同 - 可能是因为运行程序时的当前目录不是项目根目录。你能试试绝对路径,即:
engine.addImportPath("<your-project-root>/qml");
如果可行,您可以使用GetModuleFileName在运行时创建相对于二进制文件的正确路径。
答案 1 :(得分:1)
将qml folder
复制到build folder
为我工作。