CMake项目下为Qt Design Studio添加QML模拟Backend模块遇阻
问题:CMake项目中为Qt Design Studio配置Mock QML后端模块
环境与需求
- 使用Qt 6.6和Qt Design Studio 4.3
- 需求:创建一个QML模块作为现有C++ Backend模块的模拟替代,仅在Qt Design Studio的设计模式中使用
- 期望项目结构:
MyProject + CMakeLists.txt + Backend <-- 现有C++后端模块,在Qt Creator中运行正常 + CMakeLists.txt + backend.h <-- 定义QML单例,从外部源填充模型 + backend.cpp + imports + ... <-- 导入到Qt Design Studio并在最终产品中使用的QML模块 + content + ... + designer <-- 存放仅用于Qt Design Studio的设计专用模块 + Backend <-- 替代C++后端的Mock模块 + qmldir <-- 将Backend.qml注册为模块内的单例 + Backend.qml <-- 定义包含模拟数据的ListModel
官方文档参考
如果你希望在设计模式中使用与实际应用不同的模块(例如模拟C++项),可以在.pro文件中使用QML_DESIGNER_IMPORT_PATH(适用于qmake项目),或者在产品中声明并设置qmlDesignerImportPaths属性(适用于Qbs项目)。QML_DESIGNER_IMPORT_PATH中定义的导入路径下的模块仅会在设计模式中被使用。
尝试过的方法与遇到的问题
- 已验证qmake项目可通过在.pro文件中定义
QML_DESIGNER_IMPORT_PATH实现需求(参考Contact List示例) - 针对自身CMake项目,尝试按
QML_IMPORT_PATH的配置方式设置:
set(QML_DESIGNER_IMPORT_PATH ${CMAKE_BINARY_DIR}/designer CACHE STRING "" FORCE)
- 同时尝试在.qmlproject文件中添加
designerImportPaths、importPathsDesigner等类似属性,均无效果 - 始终收到如下错误提示:
第12行:未找到QML模块(Backend)。 导入路径: D:/Qt/Tools/QtDesignStudio/qt6_design_studio_reduced_version/qml D:/Projects/Qt/MyProject/asset_imports D:/Projects/Qt/MyProject/imports 对于qmake项目,使用QML_IMPORT_PATH变量添加导入路径。 对于Qbs项目,在产品中声明并设置qmlImportPaths属性以添加导入路径。 对于qmlproject项目,使用importPaths属性添加导入路径。 对于CMake项目,确保CMakeCache.txt中存在QML_IMPORT_PATH变量。 对于qmlRegister...调用,确保将模块URI定义为字符串字面量。
内容的提问来源于stack exchange,提问作者Ben Pyton
相关产品推荐
相关产品推荐

