Qt 6.4.2中QML单例置于子目录时属性未定义问题求助
Qt 6.4.2 QML单例子目录属性未定义问题解决
问题根因:
set_source_files_properties中指定的单例文件路径错误。你的代码里写的是Style.qml,但实际文件位于qml/Style.qml,CMake无法正确识别到该文件,导致单例注册不完整,属性出现未定义情况。修复步骤:
- 修正
set_source_files_properties的文件路径,使用相对项目根目录的qml/Style.qml - 确保QML中模块导入和单例引用方式无误
- 修正
修复后的CMake代码:
set_source_files_properties(qml/Style.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE ) qt_add_qml_module(untitled URI untitled VERSION 1.0 QML_FILES qml/main.qml qml/Style.qml )
- 额外验证点:
- 确认Style.qml顶部的
pragma Singleton声明无拼写错误 - 在main.qml中导入
import untitled 1.0后,直接用Style.xxx引用属性,无需实例化 - 清理CMake缓存后重新构建,避免旧配置干扰
- 确认Style.qml顶部的
内容的提问来源于stack exchange,提问作者morte
相关产品推荐
相关产品推荐

