我正在为我的 QLineEdit
使用 QDoubleValidator
。应用程序语言环境(在 QtCreator 中设置)是 QLocale::German
。
现在,当我输入一个有效的 double (使用点或逗号作为小数点分隔符)写入文本编辑器以及将字符串转换为 float 时,效果非常好。但验证器还允许我编写带有多个小数点分隔符的内容。 123.567,890
或 ,,03.4...
等字符串得到验证但无法转换为 float 。
有没有办法告诉 QDoubleValidator
只验证实数 数字而不仅仅是没有字母字符的字符串?
我基本上想要一个验证器,它只验证可以转换为 float 的字符串 使用默认语言环境或德语语言环境。
最佳答案
到目前为止,我还没有使用过QDoubleValidator
,但我可以通过使用 QRegExpValidator
来实现这种行为:
QRegExpValidator* rxv = new QRegExpValidator(QRegExp("[+-]?\\d*[\\.,]?\\d+"), this);
lineedit->setValidator(rxv);
关于c++ - QDoubleValidator 接受多个小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26652409/