0

选项“顶部”和“底部”的规范似乎有一个奇怪的行为。以下回答的问题提供了一些有用的见解,但并不能解决所有问题。

使用代码:

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)

input = QLineEdit()
input.setValidator(QDoubleValidator(0.00,10.00,5,notation=QDoubleValidator.StandardNotation))

input.show()
sys.exit(app.exec_())

输入框接受任何低于 100 的数字,但我希望只有低于 10 的数字......例如,99.55656 被接受就好了......

我想念什么?

4

1 回答 1

2

在您的示例中, line-edit 并不真正接受 value 99.55656。这可以通过调用它的hasAcceptableInput方法来确认,该方法返回False.

验证器允许输入值,因为这样做会产生有效的中间状态。根据文档,这可能发生在“如果多一点编辑可能会使输入可接受”。所以在特定情况下99.55656,删除 a9会产生一个有效的 Acceptable 状态。这似乎意味着应该将“多一点编辑”理解为添加或删除单个字符(符号为StandardNotation)。

于 2022-01-01T22:59:03.057 回答