用于 QLineEdit 的 Qt inputMask 和 QValidator(十六进制验证)
我有一个 QLineEdit,用户可以使用键盘进行输入。 行编辑必须只接受十六进制字符。 行编辑必须自动在每组 2 个十六进制字符之间放置一个分隔符 当用户删除最后一个十六进制字符时,最后一个分隔符应自动删除。
我已经尝试过这个: ui->mTextEdit->setInputMask("Hh,hh,hh,hh,hh");
但不幸的是,当没有文本时,所有逗号都会显示,并且您必须提前知道您想要多少组十六进制数字(我不知道/无法限制)。
我可以使用 QValidator 来为我做这件事吗?
I have a QLineEdit that a user is able to give input to using a keyboard.
The line edit must only accept hexadecimal characters.
The line edit must automatically put a delimiter character between every set of 2 hex characters
The last delimiter character should be automatically removed when the user deletes the last hex characters.
I have tried this:
ui->mTextEdit->setInputMask("Hh,hh,hh,hh,hh");
But unfortunately all of the commas are displayed when there is no text, and you have to know how many sets of hex numbers you want in advance (which I don't know/can't restrict).
Could I use a QValidator to do this for me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
QValidator
的自定义子类,例如validate()
,如下所示:You can use a custom subclass of
QValidator
, withvalidate()
e.g. like this: