Qt之设置QLineEdit只能输入浮点数

Qt提供了QDoubleValidator来进行浮点数校验,但是它同样存在限定范围无效的问题,详见:Qt之彻底解决QSpinBox限定范围无效的问题
因此我们要子类化QDoubleValidator,并重写其中的validate方法,最后调用QLineEdit的setValidator方法,并将这个子类当做参数传入。

QHDoubleValidator.h

#ifndef QHDOUBLEVALIDATOR_H
#define QHDOUBLEVALIDATOR_H

#include 
class QHDoubleValidator : public QDoubleValidator
{
public:
    explicit QHDoubleValidator(QObject *parent = nullptr);
    QValidator::State validate(QString &input, int &pos) const override;
};

#endif // QHDOUBLEVALIDATOR_H

QHDoubleValidator.cpp

#include "QHDoubleValidator.h"

#include 

QHDoubleValidator::QHDoubleValidator(QObject *parent)
    :QDoubleValidator(parent)
{

}

QValid

你可能感兴趣的:(Qt工作笔记,qt,QLineEdit)