1.限制整数输入范围为[-180,180]
QRegExp rx("(^-?180$)|(^-?1[0-7]\\d$)|(^-?[1-9]\\d$)|(^-?[1-9]$)|^0$");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
lineEdit->setValidator(pReg);
2.限制浮点数输入范围为[-180,180]
QRegExp rx("^-?(180|1?[0-7]?\\d(\\.\\d+)?)$");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
lineEdit->setValidator(pReg);
3.限制浮点数输入范围为[-180,180]并限定为小数位后4位
QRegExp rx("^-?(180|1?[0-7]?\\d(\\.\\d{1,4})?)$");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
lineEdit->setValidator(pReg);
实际上在运用过程中。
上述存在一定的问题
“3.限制浮点数输入范围为[-180,180]并限定为小数位后4位”
QRegExp rx("^-?(180|1?[0-7]?\\d(\\.\\d{1,4})?)$");
可以看出来包括实验出来,这个可以输入的不全面,比如90 80等没办法输入
简单改写一下可以,可以显示完全
QRegExp rx("^((-?180)|(-?1[0-7]\\d)(\\.\\d{1,4})?|(-?[1-9]\\d)(\\.\\d{1,4})?|(-?[1-9])(\\.\\d{1,4})?|0(\\.\\d{1,4})?)$ ");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
ui->longtitudeEdit->setValidator(pReg);//经度