[Qt-interest] QDoubleValidator doesn't work on limits?
Constantin Makshin
cmakshin at gmail.com
Tue Jun 1 13:56:11 CEST 2010
The documentation on QDoubleValidator::validate() function states that "If notation() is ScientificNotation, and the input is not in the valid range, Intermediate is returned. The value may yet become valid by changing the exponent."
So, in your case, when the exponent becomes too large, the number is still treated as "more or less acceptable" in the hope the user will "fix" it.
On Tuesday 01 June 2010 12:03:49 Davor J. wrote:
> Can someone explain what is wrong with the following code using Qt4.6.2?
>
> #include <QtGui>
> #include <limits>
> int main(int argc, char *argv[])
> {
> QApplication a(argc, argv);
> typedef std::numeric_limits<double> dLimit;
> QLineEdit *factorEdit = new QLineEdit();
> factorEdit->setValidator(new QDoubleValidator(-dLimit::max(),
> dLimit::max(), 5, factorEdit));
> factorEdit->show();
> return a.exec();
> }
>
> I can type "10e1815212121211818" and the validator approves it, although the
> limit is approx 10e308?
>
> Regards,
> Davor
More information about the Qt-interest-old
mailing list