• 6291阅读
  • 3回复

[提问]QIntValidator问题,如何避免0的输入 [复制链接]

上一主题 下一主题
离线feixiangxtu
 

只看楼主 倒序阅读 楼主  发表于: 2011-05-25
我使用 QIntValidator 整型数验证控件控制QLineEdit的输入范围

QValidator* validator = new QIntValidator( 1, 999, this );
QLineEdit* edit = new QLineEdit( this );

// 只允许 edit 输入整数 100 到 999
edit->setValidator( validator );

但为什么输入框还是允许0的输入?如何避免,谢谢。
离线cookinful
只看该作者 1楼 发表于: 2011-06-16
同问,有没有人知道?
离线dbzhang800

只看该作者 2楼 发表于: 2011-06-16
因为某个数比如333符合validator,前面加若干个0,依然还是符合 000333。所以没有任何理由阻止你输入0/00/000/0003/...
离线cookinful
只看该作者 3楼 发表于: 2011-06-16
解决了,方法如下:
fileNameEdit=new QLineEdit;
QRegExp regExp("[1-9][0-9]*$"); //大于一的整数!
fileNameEdit->setValidator(new QRegExpValidator(regExp, this));
快速回复
限100 字节
 
上一个 下一个