使用QLineEdit时,想使其仅允许输入数字与大小写的A~F,在网上搜索到需要使用正则表达式以及QRegExpValidator.但在实际使用的时候,发现本人所用的QT6中并搜索不到QRegExpValidator的头文件,并且在帮助-查找里也找不到相关内容。
并且在网络上大家使用的都是QRegExpValidator来对QLineEdit做关联正则表达式,在网上也没有搜索到关于“搜索不到QRegExpValidator头文件”之类的帖子,于是在此做一下记录。
在网络上反复搜查无果后,我还是选择了再"帮助"中搜索关于QLineEdit的相关函数,在看到熟悉的函数setValidator后,点击进去发现了比较眼熟的词汇:
QRegularExpressionValidator与QRegExpValidator十分相像,基本上属于一个意思,于是乎将原本的QRegExpValidator替换成QRegularExpressionValidator,同时将QRegExp替换为QRegularExpression后,达到了原本想要的效果。
#include <QRegularExpressionValidator>
QRegularExpression regExp("[A-Fa-f0-9]{1,12}");
QValidator *validator = new QRegularExpressionValidator(regExp, this );
ui->Direct_COMM->setValidator( validator );