C++ 如何验证QlineEdit以便只允许写入字符串或只允许写入数字

C++ 如何验证QlineEdit以便只允许写入字符串或只允许写入数字,c++,qt,validation,qt5,C++,Qt,Validation,Qt5,我有一个QLineEdit 我希望当用户在该字段中输入数据时,只允许输入数字,或只允许输入文本字符串,等等 我知道通过使用void QLineEdit::setValidator(const QValidator*v),来实现这一点的方法,但我不知道如何使用此方法? QRegExp rx("regex"); QValidator *validator = new QRegExpValidator(rx, this); QLineEdit *edit = new QLineEdit(this);

我有一个
QLineEdit

我希望当用户在该字段中输入数据时,只允许输入数字,或只允许输入文本字符串,等等

我知道通过使用
void QLineEdit::setValidator(const QValidator*v)
来实现这一点的方法,但我不知道如何使用此方法?

QRegExp rx("regex");
QValidator *validator = new QRegExpValidator(rx, this);

QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);
其中,字符串的正则表达式:

[a-zA-Z]+ 
有关数字:

[0-9]+

@LionKing请显示您的代码,您应该包括QRegExp和QRegExpValidator,并编写QRegExp rx(“[0-9]+”);如果没有帮助,那么展示你的code@LionKing它应该是QRegExp模式(“[a-zA-Z]+”);编译器无法转换您的代码。@liong对于数字有
QIntValidator
QDoubleValidator
。使用正则表达式进行数字验证的开销很大。此外,可能存在国际化问题。@DmitrySazonov:谢谢,但您能否按照我之前的要求,告诉我使用验证的理想方法。@LionKing QValidator*validator=new QIntValidator(100999,这个);在我的答案中设置它,你们可以看到,在这个类中,你们可以设置范围,若你们需要的话。