c++ - QDoubleValidator 接受多个小数点

标签 c++ qt qt5 qlineedit qvalidator

我正在为我的 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/

相关文章:

c++ - 未为 QTableView 行调用 QStyledItemDelegate 的 sizeHint 方法

Qt3d 使用 QSceneLoader 和 qt 5.8

python - 如何为不同的QWebEnginePage实例设置不同的代理?

c++ - 部署带有标识的Qt程序加载

c++ - 删除完整链表时的段错误

c++ - 使用 union hack c++ 进行事件处理

c++ - std::map 如何提供常量 size() 操作?

c++ - Qt QDialog 每次关闭并再次显示时都会稍微移动位置

c++ - cpp中元素删除后的迭代器

c++ - Qt,从另一个子小部件获取子小部件内的数据