QLineEdit 输入过滤

问题描述 投票:0回答:1

全部,

我想知道是否可以根据插入符位置在 QLineEdit 内进行输入过滤。

意思是如果我在位置0我只允许输入数字,但如果我在位置5我只允许输入字母?这只是一个例子,在实际应用中将实施更复杂的检查。

另外,我不想要 RE 解决方案 - RE 的编译和使用速度很慢。我想要一个本机 QT 解决方案,因为“掩码”将取决于用户输入。

谢谢你。

P.S.:我可以使用 wxWidgets 轻松完成,但我当前正在使用的项目是用 Qt 编写的。

qt validation text caret
1个回答
1
投票

QLineEdit
具有
setInputMask(QString &inputMask)
功能,它应该可以实现您想要的功能:

line.setInputMask(inputMask)

更新:
更好的方法是使用

setValidator(const QValidator *v)
。您需要子类化 QValidator,然后在其
validate()
函数中实现所需的行为。

© www.soinside.com 2019 - 2024. All rights reserved.