16 #include <QDoubleValidator>
26 QDoubleValidator( min, max, decimals, parent)
30 : QDoubleValidator(parent)
33 QValidator::State
validate(QString& input,
int& pos)
const override
36 if (input.isEmpty() || input ==
"." || input ==
"-")
return Intermediate;
38 QChar
const decimalPoint(
'.');
39 if (input.indexOf(decimalPoint) != -1)
41 int const charsAfterPoint = input.length() - input.indexOf(decimalPoint) - 1;
42 if (charsAfterPoint > decimals())
43 return QValidator::Invalid;
47 double const d = input.toDouble(&ok);
49 if (ok && d >= bottom() && d <= top())
50 return QValidator::Acceptable;
52 return QValidator::Invalid;
A validator for an input field which only accepts decimals. Source code adapted from StackOverflow
StrictDoubleValidator(QObject *parent=nullptr)
QValidator::State validate(QString &input, int &pos) const override
StrictDoubleValidator(double min, double max, std::size_t decimals, QObject *parent=nullptr)