gpt4 book ai didi

python - 如何设置 PyQt5 QIntValidator 的顶部和底部?

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:18 25 4
gpt4 key购买 nike

我有一个类似下面代码的行编辑。在 3 个不同的代码中,我有 2 个不同的问题:

self.rnr_id_num_le = QLineEdit()
self.rnr_id_num_le.setValidator(QIntValidator(9999999999, 0))

使用它我可以 pnly 输入 0 和 1。

self.rnr_id_num_le = QLineEdit()
self.rnr_id_num_le.setValidator(QIntValidator(0, 9999999999))

使用这个我只能输入 0。

我需要它来获得这样的数字:5236147891(位数很重要。如果我不在 QIntValidator 中输入任何数字,它不会让我输入这么大的数字)

基于 http://pyqt.sourceforge.net/Docs/PyQt4/qintvalidator.html#QIntValidator-2第二个必须工作;但它没有:(

编辑:

好吧,显然它的最高点,如果可以的话,比我需要的少一位数。你知道另一种验证我的 QLineEdit 或增加 QIntValidator 的方法吗?

最佳答案

QIntValidator类仅支持 -21474836482147483647 范围内的有符号值。如果您需要此范围之外的值,请使用 QDoubleValidator ,它支持无限的浮点值。

您可以创建 QDoubleValidator 的简单子(monad)类来调整行为,使其更像 QIntValidator:

class BigIntValidator(QtGui.QDoubleValidator):
def __init__(self, bottom=float('-inf'), top=float('inf')):
super(BigIntValidator, self).__init__(bottom, top, 0)
self.setNotation(QtGui.QDoubleValidator.StandardNotation)

def validate(self, text, pos):
if text.endswith('.'):
return QtGui.QValidator.Invalid, text, pos
return super(BigIntValidator, self).validate(text, pos)

关于python - 如何设置 PyQt5 QIntValidator 的顶部和底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37908789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com