在 Qt 中,您可以使用正则表达式来限制输入框只能输入数字和破折号(“-”)。以下是一些示例代码,您可以根据您的需求选择其中之一:
- 只允许输入整数:
ui->lineEdit->setValidator(new QIntValidator(ui->lineEdit));
- 只允许输入数字:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[0-9]+$")));
- 只能输入字母和数字:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$")));
- 只能输入大写字母:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^[A-Z]+$")));
- 只能输入小写字母:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^[a-z]+$")));
- 只能输入字母:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^[A-Za-z]+$")));
-
输入浮点数:
- 非负浮点数(正浮点数 + 0):
"^\d+(\.\d+)?$"
- 正浮点数:
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
- 非正浮点数(负浮点数 + 0):
"^((-\\d+(\.\d+)?)|(0+(\.0+)?))$"
- 负浮点数:
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
- 浮点数:
"^(-?\d+)(\.\d+)?$"
- 非负浮点数(正浮点数 + 0):
-
输入范围为 -255 到 255 的整数:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^-?(255|[1,2]?[0-4]?\\d|[1,2]?5[0-4]?)$")));
- 限制浮点数输入范围为 [-90, 90] 并限定小数位后4位:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^-?(90|[1-8]?\\d(\\.\\d{1,4})?)$")));
- 输入格式为年-月-日:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^(\\d{2}|\\d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$")));
- 输入格式为月/日/年:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(\\d{2}|\\d{4})$")));
- 只能输入中文:
ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("[\\u4e00-\\u9fa5]+$")));