在使用 QT 制作登录器时,想要账号只支持英文和数字,通过正则表达式可以使 QLineEdit 输入框只支持输入指定的字符……然鹅
首先,如果什么都不设定的话,输入框是可以输入任何字符的。
通过对指定 QLineEdit 设定正则表达式,可以限制为只能输入 英文、数字(如有其它需求,更改正则表达式即可):
QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, ui->lineEdit );
ui->lineEdit->setValidator(validator);
设定之后,输入中文已经不会在输入框中显示了。
可是好像刚刚多了什么东西?
没错,虽然输入中文到输入框都不显示了,但是为什么还会有这该死的输入法???
经过一阵摆渡,原来还可以这样屏蔽输入法:
ui->lineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);
完成!