[Qt-interest] line edits and commas

Duane duane.hebert at group-upc.com
Mon Apr 18 18:24:00 CEST 2011


Using 4.7.1 LGPL version. MS Windows.


QLineEdit with a double validator accepts '.' as valid as expected for 
the target default locale.  But it allows ',' to be entered. I am 
checking the state of the validator to determine when the string is 
acceptable rather than intermediate.

But it isn't consistent as to whether the state is valid or 
intermediate.  For example, if I have it set with a min 0 and max 10 and 
the user enters 0,1 it returns acceptable but if the user enters 12,3 it 
returns intermediate.  0,1, is also acceptable.  0,1.2 is also 
acceptable.  It almost seems that it's trying to allow a thousands 
separator.  But according to the docs:

In addition, QDoubleValidator is always guaranteed to accept a number 
formatted according to the "C" locale. QDoubleValidator will not accept 
numbers with thousand-separators.


I'm able to handle this by checking for commas in the textChanged() slot 
and removing them but this behavior seems new and not correct.
Actually, I don't think that it should return intermediate when 
encountering a comma in a locale that uses dots for decimal points.


A second and maybe related problem is that a QSpinBox with a min of 0
and some positive number for a max allows the user to enter commas.  It 
doesn't allow decimal separators so it must also be trying to use a 
thousands separator.


Is this intended behavior in either case?




More information about the Qt-interest-old mailing list