Qt提供了QDoubleValidator来进行浮点数校验,但是它同样存在限定范围无效的问题,详见:Qt之彻底解决QSpinBox限定范围无效的问题 。因此我们要子类化QDoubleValidator,并重写其中的validate方法,最后调用QLineEdit的setValidator方法,并将这个子类当做参数传入。 QSpinBox和QDoubleSpinBox有个特性,如果输入的是非法值,当它们失去焦点时,编辑框中会恢复到输入之前的值。这里我们也要对QLineEdit实现这个特性。

一.效果

假设取值范围为-9~9,如果输入为空、"-"、或“-0”,当QLineEdit失去焦点时,编辑框中的值恢复为输入之前的值。当输入为的“数字+点”时,保留数字,比如-4.为-4;4.为4

二.实现

QHDoubleValidator.h

#ifndef QHDOUBLEVALIDATOR_H

#define QHDOUBLEVALIDATOR_H

#include

class QHDoubleValidator : public QDoubleValidator

{

public:

explicit QHDoubl

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: