Qt 正则表达式(1)

本文主要讲述正则表达式和 QLIneEdit 的结合使用

相信很多人对正则表达式都不陌生,Qt中的正则表达式的使用和其他编程语言中的使用没有什么大的区别。

常用类及其函数

如果在Qt中只使用正则表达式,那么我们完全可以使用QRegExp这个类,在初始化的时候代码如下:

    QString regInfo = "(([0-9]{1})|([1-9]{1}[0-9]{?}))\\.([0-9]{1})";
    QRegExp regE(reInFo);

不难看出,QRegExp类在声明的时候构造函数接收的是一个字符串(注意:不支持C++11里面的这样的初始化方式QRegExp regE = reInFo

QLineEdit 说明

QLineEdit 是输入文本的方式,但是在实际的开发过程中,可能因为某些原因,不得不让这个文本进行限制,如果是浮点数,在Qt 5.12这个版本中,QDoubleValidator是有Bug的,不管是实例化还是使用函数设置,都无效,那么只有使用其他方式进行替代。
替代函数如下:

/// poDigital参数为整数位,flDigital 是小数位
void MainWindow::setDoubleValidator(const unsigned int &poDigital, const unsigned int &flDigital)
{
    QString regBegin = "(([0-9]{1})|([1-9]{1}";
    for (unsigned int i = 1; i < poDigital; i++)
    {
        regBegin += "[0-9]?";
    }
    regBegin += tr("))\\.([0-9]{%1})").arg(fDigit);
    QRegExp regExp(regBegin);
    mValidator->setRegExp(regExp);/// mValidator 在 .h 文件里面声明 QRegExpValidator *mValidator;
    ui->lineEdit->setValidator(mValidator);
}

注:此函数主要适用于比较小的数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值