C++用正则表达式限制QLineEdit输入为1.坐标类型(0,0)、2.整数-整数、3.+-整数、4.正整数
时间: 2025-01-29 11:12:41 浏览: 40
在C++中,你可以使用Qt库中的`QValidator`类结合正则表达式(regex)来限制`QLineEdit`控件的输入格式。这里提供一种简单的方式来实现四种不同的限制:
1. 十进制坐标(如0,0):
```cpp
QRegExp regex("^[0-9]+(\\.[0-9]{1,2})?$");
QDoubleValidator double_validator(regex, this);
lineEdit->setValidator(&double_validator);
```
2. 整数-整数形式(如1-5):
```cpp
QRegExp regex("-?[1-9][0-9]*-[1-9][0-9]*");
QIntValidator int_validator(regex, this);
lineEdit->setValidator(&int_validator);
```
3. 符号+整数(如+10 或 -15):
```cpp
QRegExp regex("^[-+]?[1-9][0-9]*$");
QIntValidator signed_int_validator(regex, this);
lineEdit->setValidator(&signed_int_validator);
```
4. 正整数:
```cpp
QRegExp regex("^[1-9][0-9]*$");
QIntValidator positive_int_validator(regex, this);
lineEdit->setValidator(&positive_int_validator);
```
在以上例子中,我们创建了`QRegExp`对象来表示相应的模式,并将它们传递给对应的`QValidator`(如`QDoubleValidator`、`QIntValidator`),最后设置到`QLineEdit`上。
阅读全文
相关推荐


















