当前位置: 首页 > news >正文

【个人成长笔记】在 QT 中 SkipEmptyParts 编译错误信息及其解决方案

【个人成长笔记】在 QT 中 SkipEmptyParts 编译错误信息及其解决方案

E:\huasheng\ProductTest\mainwindow.cpp:1103: error: no member named 'SkipEmptyParts' in namespace 'Qt'

(持续更新中,欢迎关注!)

文章目录

  • 【个人成长笔记】在 QT 中 SkipEmptyParts 编译错误信息及其解决方案
    • 📖 前言
      • 1. Qt 5.13 及更早版本
      • 2. Qt 5.14 及以上版本
    • 🔧 解决方案
      • 方法 1:修改代码为兼容版本(推荐)
      • 方法 2:添加版本条件编译
      • 方法 3:升级 Qt 版本
    • 📚 背景知识
      • 1. Qt 5.14 的变更
      • 2. 旧版兼容性
    • ✅ 验证步骤

📖 前言


error: no member named 'SkipEmptyParts' in namespace 'Qt'

根本原因是 SkipEmptyParts 枚举值的命名空间归属随 Qt 版本发生了变化:

1. Qt 5.13 及更早版本

  • SplitBehavior 枚举是 QString 的成员,需使用 QString::SkipEmptyParts

2. Qt 5.14 及以上版本

  • SplitBehavior 被移至 Qt 命名空间,需使用 Qt::SkipEmptyParts

您的代码中使用了 Qt::SkipEmptyParts,但当前项目配置的 Qt 版本低于 5.14,导致编译器在 Qt 命名空间中找不到该枚举值。


🔧 解决方案

方法 1:修改代码为兼容版本(推荐)

直接替换 Qt::SkipEmptyPartsQString::SkipEmptyParts

// 修改前(仅支持 Qt ≥ 5.14)
str.split(sep, Qt::SkipEmptyParts);// 修改后(兼容所有 Qt 5.x 版本)
str.split(sep, QString::SkipEmptyParts);

方法 2:添加版本条件编译

若需同时支持新旧版本,使用宏判断:

#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)str.split(sep, Qt::SkipEmptyParts);  // Qt ≥ 5.14
#else str.split(sep, QString::SkipEmptyParts);  // Qt < 5.14
#endif

方法 3:升级 Qt 版本

将项目升级到 Qt 5.14 或更高版本,并在 .pro 文件中显式声明最低版本:

QT_MIN_VERSION = 5.14  # 确保版本兼容性 

📚 背景知识

1. Qt 5.14 的变更

Qt 5.14 将多个工具类枚举(如 SplitBehaviorCaseSensitivity)从类作用域移至全局 Qt 命名空间,以提高一致性和减少冗余。

2. 旧版兼容性

即使在新版本中,QString::SkipEmptyParts 仍被保留(标记为 deprecated),但建议优先使用 Qt::SkipEmptyParts


✅ 验证步骤

    1. 检查项目使用的 Qt 版本(查看 qmake --version.pro 文件)。
    1. 若版本 < 5.14:
    • 全局搜索 Qt::SkipEmptyParts 并替换为 QString::SkipEmptyParts
    • 重新编译验证。

关键提示:此错误常出现在跨版本协作项目中。建议在团队文档中明确 Qt 版本要求,避免类似兼容性问题。

http://www.dtcms.com/a/490054.html

相关文章:

  • 设计模式篇之 备忘录模式 Memento
  • dw做的网站放文件夹网页生成桌面快捷方式
  • 2017流行的网站风格随州网站建设价格
  • 鸿蒙:使用媒体查询监听屏幕方向、切换横竖屏
  • 8.list的使用
  • 网页跳转github镜像
  • 安灯系统(Andon)如何为汽车工厂打造零延迟响应
  • C++(条件判断与循环)
  • 温州建设局网站首页中国企业名录黄页
  • linux/centos迁移conda文件夹
  • Quill 富文本编辑器 功能介绍,使用场景说明,使用示例演示
  • 网站生成器怎么做网站建设与管理实训主要内容
  • 网站信用认证可以自己做吗稀奇古怪好玩有用的网站
  • MySQL 基础语句
  • Linux中CPU初始化和调度器初始化函数的实现
  • MATLAB基于ST-CNN-SVM的轴承故障诊断,S变换和卷积神经网络结合支持向量机
  • 在优豆云免费云服务器上初探SSH与SCP的便捷操作
  • MySQL数据库:软件、相关知识和基本操作
  • Bahdanau注意力
  • 重生之我在大学自学鸿蒙开发第七天-《AI语音朗读》
  • Spring AI 1.0 GA 深度解析:Java生态的AI革命已来
  • Linux网络之----TCP网络编程
  • 【零基础学习CAPL语法】——writeLineEx() 函数
  • 计算机网络数据链路层
  • 做网站选什么专业门户网站开发步骤博客
  • 论文写作 24: 全文保持同样的节奏
  • 洛谷 P1438 无聊的数列 题解
  • iOS混淆与IPA加固实战手记,如何构建苹果应用防反编译体系
  • 想抓PostgreSQL里的慢SQL?pg_stat_statements基础黑匣子和pg_stat_monitor时间窗,谁能帮你更准揪出性能小偷?
  • 把 iOS 26 的「Liquid Glass」带进 React Native