PyQt:仅适用于Integer或仅适用于字符串和长度限制的QLineEdit输入掩码

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

这是两个问题(都可以通过InputMask解决吗?]

  1. 我只想将用户输入限制为16个字符
  2. 在类似“年龄/ ID”的字段中,我希望用户输入的内容只能是整数,如果用户输入的字符串不能被接受,或者用户首先不能输入字符串。

我不确定如何实时实现第一部分,即用户输入的最大长度为16,没有超过16的出现。

这是我对问题第二部分的代码(不起作用):

self.onlyInt = QIntValidator()
self.lineEdit_15.setValidator(self.onlyInt)
det15=str(self.lineEdit_15.text())
list_val.append(det15)
python python-2.7 pyqt pyqt4
1个回答
1
投票

为了解决第一个问题,我们只需要确定一个最大大小:

self.lineedit_15.setMaxLength(16)

相反,第二个QIntValidator问题的最大作用数等于2147483647,因为它是最大整数:2 ** 31-1,解决方案是使用正则表达式:

rx = QRegExp("\d+")
self.lineedit_15.setValidator(QRegExpValidator(rx))
© www.soinside.com 2019 - 2024. All rights reserved.