[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