Qt限制LineEdit的输入

要限制输入需要用到Validator才能限制QLineEdit的输入,具体的两种表现方式。

第一种是利用正则表达式QRegExp;例如下图所示:

    QRegExp rx1 = QRegExp("[0-9.]+$");//正则表达式,限制数字与点的输入,
    QValidator *validator1 = new QRegExpValidator(rx1, ui.lineEdit_InputIP);
    ui.lineEdit_InputIP->setValidator(validator1);//验证输入

    
    QRegExp rx2("[0-9A-Za-z]{1,8}$");//正则表达式,限制数字与字母的输入,只能输入8位数字与字母的组合
    QValidator *validator2 = new QRegExpValidator(rx2, ui.lineEdit_InputSN);
    ui.lineEdit_InputSN->setValidator(validator2);

    
    QRegExp rx3 = QRegExp("[0-9]{1,3}$");//正则表达式,限制数字的输入,只能输入000-999
    QValidator *validator3 = new QRegExpValidator(rx3, ui.lineEdit_InputContinueNum);
    ui.lineEdit_InputContinueNum->setValidator(validator3);

 

    //限制增益的输入控件输入
    QRegExp rx5 = QRegExp("[0-3]");//正则表达式,限制数字0-5的输入,
    QValidator *validator5 = new QRegExpValidator(rx5, ui.lineEdit_Gain);
    ui.lineEdit_Gain->setValidator(validator5);

    //限制帧率的输入控件输入
    QRegExp rx6 = QRegExp("[0-9]{1,2}");//正则表达式,限制数字的输入,只能输入0-99
    QValidator *validator6 = new QRegExpValidator(rx6, ui.lineEdit_AcqFrameRate);
    ui.lineEdit_AcqFrameRate->setValidator(validator6); 

第二种是利用QIntValidator,QDoubleValidator等四个类来限制输入,例如

   ui.lineEdit_Exp->setValidator(new QIntValidator(1, 1000000, this));  //只能输入Int型的1-1000000,但是仍然能输入0000000
    //ui.lineEdit_Exp->setValidator(new QDoubleValidator(1.0, 1000000.0,2, this));
    //只能输入bouble型的1.0-1000000.0,但是仍然能输入0000000,小数点后只能有2位

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值