本文所提到12位精度的小数
指的是整数部分加上小数部分等于12个数字
使用 Qt 的 QRegExpValidator 类来限制字符串为12位精度的小数
#include <QLineEdit>
#include <QRegExpValidator>
// 创建一个 QLineEdit 对象
QLineEdit *lineEdit = new QLineEdit(this);
// 创建一个正则表达式
QRegExp regex("^[+-]?(?=.{1,13}$)\\d{0,12}(\\.\\d{0,12})?$");
// 创建一个 QRegExpValidator 对象
QRegExpValidator *validator = new QRegExpValidator(regex, this);
// 将 validator 设置为 lineEdit 的验证器
lineEdit->setValidator(validator);
正则表达式解释:
^
匹配字符串开头[+-]?
匹配可选的正负号(?=.{1,13}$)
使用正则表达式的正向预查,确保字符串总长度不超过13个数字\d{0,12}
匹配0到12个数字(\.\d{1,12})?
匹配一个小数点和1到12个数字(可选)$
匹配字符串结尾