Qt Creator生成的UI文件在QGIS中出现语法无效问题
问题原因与解决方法
核心原因:Qt Creator 14.0.2默认适配Qt 6版本的UI编译工具(uic),保存.ui文件时会生成Qt 6风格的嵌套枚举写法(比如
Qt::Orientation::Horizontal、QDialogButtonBox::StandardButton::Cancel)。但QGIS 3.38.3依赖的是Qt 5.x版本,Qt 5的uic编译器不支持这种嵌套枚举语法,因此编译时会触发语法错误。解决步骤:
- 手动修正.ui文件的枚举格式:
- 将
Qt::Orientation::Horizontal改为Qt::Horizontal - 将
QDialogButtonBox::StandardButton::Cancel改为QDialogButtonBox::Cancel
- 将
- 切换Qt Creator的Kit适配Qt 5.x:
- 打开工具>选项>构建和运行>Kit,添加并选中与QGIS 3.38.3匹配的Qt 5.x版本Kit
- 重新打开.ui文件,做任意微小修改(比如调整按钮位置)后保存,工具会自动生成Qt 5兼容的枚举代码
- 手动修正.ui文件的枚举格式:
额外说明:QGIS 3.x系列长期基于Qt 5.15开发,直到QGIS 4.x版本才会切换到Qt 6。后续开发QGIS 4.x插件时,可直接使用Qt Creator 14.0.2生成的Qt 6风格.ui文件。
内容的提问来源于stack exchange,提问作者GammaGames
相关产品推荐
相关产品推荐

