自定义C++枚举暴露给QML后提示模块未找到问题排查
QML设计器提示"my.enum"模块找不到的原因
设计器不支持运行时动态注册的模块:
qmlRegisterUncreatableMetaObject是程序运行阶段动态注册QML模块的方式,但QML设计器解析QML文件时走的是静态分析流程,不会执行main.cpp里的注册代码,自然识别不到这个模块。缺少模块的静态元数据文件:Qt的QML模块需要配套的
qmldir文件和qmltypes元数据文件,设计器依赖这些静态文件来识别模块存在。你仅完成了运行时注册,没有生成这些静态文件,设计器无法感知到"my.enum"模块。设计器与运行时的引擎环境不同:QML设计器使用Qt Creator内置的独立QML引擎,它不会加载你的应用程序编译逻辑,也就无法获取到
main.cpp中注册的模块信息,导致模块查找失败。
内容的提问来源于stack exchange,提问作者Me3nTaL
相关产品推荐
相关产品推荐

