• 268阅读
  • 3回复

替换 QRegExp,差点累死我了。 [复制链接]

上一主题 下一主题
在线20091001753
 

只看楼主 倒序阅读 楼主  发表于: 10-06
Qt6 正式移除了 QRegExp,而它在我的项目里,几乎四处都是,用量很大。

于是我今天忙活了一天,就是为了把所有项目里的 QRegExp 替换成 QRegularExpression,累死我了。

虽然我目前还并不打算将项目从 Qt5 迁移到 Qt6,但为了未来迁移的时候能方便些,早做修改总不算坏事。

我迁移 Qt6 最大的阻碍是 QTextToSpeech 类的缺失,该类存在于 Qt 5.8~5.15,又在 Qt6 被移除。

文本转语音 其实是挺实用的功能,难以理解 Qt6 为什么要移除它。
(づ ̄ 3 ̄)づ
离线tanyue.esec

只看该作者 1楼 发表于: 10-07
Qt还能文本转语音呢,发现了新大陆



可是Qt6为什么又要移除呢,做成第三方插件?
1条评分金钱+10
20091001753 金钱 +10 官方说,觉得这个模块用到的人不多,索性就移除了。我也是无语了。 10-07
离线uidab

只看该作者 2楼 发表于: 10-07
提前给大家预警了。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
在线liudianwu

只看该作者 3楼 发表于: 10-08
Qt武林秘籍之升级到Qt6吐血经验第18条
18. QRegExp类移到了core5compat模块,需要主动引入头文件 #include <QRegExp>。
pro文件加上 greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat
```cpp
    //设置限制只能输入数字+小数位
    QString pattern = "^-?[0-9]+([.]{1}[0-9]+){0,1}$";
    //设置IP地址校验过滤
    QString pattern = "(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})";

    //确切的说 QRegularExpression QRegularExpressionValidator 从5.0 5.1开始就有
#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0))
    QRegularExpression regExp(pattern);
    QRegularExpressionValidator *validator = new QRegularExpressionValidator(regExp, this);
#else
    QRegExp regExp(pattern);
    QRegExpValidator *validator = new QRegExpValidator(regExp, this);
#endif
    lineEdit->setValidator(validator);
```


专业各种自定义控件编写+UI定制+输入法定制+视频监控+工业控制+仪器仪表+嵌入式linux+各种串口网络通信,童叟无欺,量大从优,欢迎咨询购买定制!你正好需要,我正好专业!QQ:517216493 微信:feiyangqingyun Email:feiyangqingyun@163.com
群号:853086607(Qt交流大会,雨田哥群,不定期上传作品,解答作品中相关问题!) 312125701(QtQML多多指教群) 46679801(Qt开发技术交流群-5000人大群)
快速回复
限100 字节
 
上一个 下一个