【发布时间】:2016-02-16 15:52:36
【问题描述】:
我正在尝试在基于CMake 的Qt 项目中导入我自己的模块。
qmldir.txt
module MyModule
MyModuleLabel 1.0 MyModuleLabel.qml
根据documentation,我需要设置QML2_IMPORT_PATH变量。
SET(QML2_IMPORT_PATH "/graphics")
或者,我也可以使用QQmlEngine::addImportPath()。
两种方法都试过了,还是不行。 QQmlEngine::importPathList() 不显示我的路径,因此编译器说:
module "MyModule" is not installed
我错过了什么?
【问题讨论】:
-
CMake 配置构建,cmake 中的环境变量仅在构建时 生效,而QML2_IMPORT_PATH 仅在运行时 相关。构建系统是错误的地方。 (您可以将模块与可执行文件一起安装,并将 addImportPath() 与 QCoreApplication::applicationDirPath() 一起使用)。
-
我不确定我是否正确理解了你的最后一句话。我尝试了以下操作:
engine.addImportPath(QCoreApplication::applicationDirPath() + "/graphics");并将我的graphics文件夹移动到二进制目录中。模块仍未找到。请注意,graphics文件夹的 QML 文件未链接到.qrc文件中。这些图形元素应被视为独立于项目。 -
文件名应为
qmldir,不带任何扩展名