You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:04:57