仅在qlineedit中写入float值

Write only float values in QLineEdit

本文关键字:float qlineedit 仅在      更新时间:2023-10-16

如何在范围(0.0-5.0)的QLineEdit浮点数中写入?我使用qregexp进行此类任务,例如QRegExp a("([a-zA-Z]{3,30})")来编写用户名,但没有想法编写浮点数。

最好的选择是将QDoubleValidator用于此类任务,因为它不仅会验证输入的 shape EM>:

auto dv = new QDoubleValidator(0.0, 5.0, 2); // [0, 5] with 2 decimals of precision
yourLineEdit->setValidator(dv);

如果您要处理许多小数(或者打算将范围更改为更宽的小数),则可能有兴趣禁用科学符号:

dv->setNotation(QDoubleValidator::StandardNotation);

另一方面,由于您要求提供正则表达式以来的答案,因此浮点数为 [-+]?[0-9]*.?[0-9]+,因此,对于您的特定范围,您可以尝试: ([0-4]?.[0-9]+)|(5.0+)|([0-5])。无论如何,我建议使用验证器,因为如果范围通过项目或运行时范围更改,则延伸更难扩展。

使用正则划分并分解范围,0.0-5.0将是:

[0-4].d|5.0

扩展

   #  0.0  to  4.9
   [0-4] . d 
|  
   #  5.0
   5 . 0