为什么我可以输入以下表格的位数是有限的?



我从一位前员工那里接管了代码,它使用如下输入:

TextField   {
width: 0.5*parent.width
height: 0.5*parent.height
validator:  DoubleValidator {
notation: DoubleValidator.StandardNotation
decimals: 3
bottom: -99.99
top: 99.99
}
text: scanCom.x
horizontalAlignment: TextInput.AlignHCenter
verticalAlignment: TextInput.AlignVCenter
onEditingFinished: {
scanCom.x = parseFloat(text)
}
onActiveFocusChanged:   {
if (!activeFocus && !acceptableInput)   {
xInvalidValueId.visible = true
text = scanCom.x
}
}
}

它不允许输入非数字(这很好),但也将可用数字限制为总共 2 位。我可以输入 88、8.8 或 0.88,但不能输入 88.8。验证器似乎只是检查输入是否为双精度。它如何限制我可以键入的内容?

我用grep --color -Iins 'Hints' *.cpp *.h *.qml在源代码中搜索提示,没有找到与inputMethodHints相关的任何内容。

同一形式的其他文本字段接受任意输入。

如下所述:

如果表示法设置为 DoubleValidator.StandardNotation,并且输入 小数点前包含的数字多于小数点前的双精度 有效范围可能有,它被拒绝。

因此,您接近预期的行为。无论如何,我会使用

notation: DoubleValidator.ScientificNotation

并查看是否允许任意输入。

相关内容

  • 没有找到相关文章

最新更新