QLineEdit 屏蔽中文输入

2019/03/21 · QT编程 · 技术经验 · 4358次阅读
在使用 QT 制作登录器时,想要账号只支持英文和数字,通过正则表达式可以使 QLineEdit 输入框只支持输入指定的字符……然鹅

首先,如果什么都不设定的话,输入框是可以输入任何字符的。
1.jpg

通过对指定 QLineEdit 设定正则表达式,可以限制为只能输入 英文、数字(如有其它需求,更改正则表达式即可):

QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, ui->lineEdit );
ui->lineEdit->setValidator(validator);

设定之后,输入中文已经不会在输入框中显示了。
可是好像刚刚多了什么东西?
没错,虽然输入中文到输入框都不显示了,但是为什么还会有这该死的输入法???
2.jpg

经过一阵摆渡,原来还可以这样屏蔽输入法:

ui->lineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);

完成!

标签:QT,QLineEdit,输入法,中文,输入框,登录器

最后编辑于:2020/01/16 17:49

🎯添加新评论