NicoNicoNi.Cc - 输入法
type: channel
link: https://niconiconi.cc/tag/输入法/
items: QLineEdit 屏蔽中文输入

QLineEdit 屏蔽中文输入
type: item
date: 2019-03-21T13:04:00+08:00
description: 在使用 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);完成！