QDoubleValidator Class
The QDoubleValidator class provides range checking of floating-point numbers. 更多...
头文件: | #include <QDoubleValidator> |
qmake: | QT += gui |
基类: | QValidator |
公有类型
enum | Notation { StandardNotation, ScientificNotation } |
属性
- 1 个属性继承自 QObject
公有函数
QDoubleValidator(QObject *parent = Q_NULLPTR) | |
QDoubleValidator(double bottom, double top, int decimals, QObject *parent = Q_NULLPTR) | |
~QDoubleValidator() | |
double | bottom() const |
int | decimals() const |
Notation | notation() const |
void | setBottom(double) |
void | setDecimals(int) |
void | setNotation(Notation) |
virtual void | setRange(double minimum, double maximum, int decimals = 0) |
void | setTop(double) |
double | top() const |
重新实现的公有函数
virtual QValidator::State | validate(QString &input, int &pos) const |
- 4 个公有函数继承自 QValidator
- 32 个公有函数继承自 QObject
其他继承的成员
- 1 个公有槽函数继承自 QObject
- 1 个信号继承自 QValidator
- 2 个信号继承自 QObject
- 1 个公有变量继承自 QObject
- 10 个静态公有成员继承自 QObject
- 9 个受保护的函数继承自 QObject
- 2 个受保护的变量继承自 QObject
详细描述
The QDoubleValidator class provides range checking of floating-point numbers.
QDoubleValidator provides an upper bound, a lower bound, and a limit on the number of digits after the decimal point. It does not provide a fixup() function.
You can set the acceptable range in one call with setRange(), or with setBottom() and setTop(). Set the number of decimal places with setDecimals(). The validate() function returns the validation state.
QDoubleValidator uses its locale() to interpret the number. For example, in the German locale, "1,234" will be accepted as the fractional number 1.234. In Arabic locales, QDoubleValidator will accept Arabic digits.
Note: The QLocale::NumberOptions set on the locale() also affect the way the number is interpreted. For example, since QLocale::RejectGroupSeparator is not set by default, the validator will accept group separators. It is thus recommended to use QLocale::toDouble() to obtain the numeric value.
参见 QIntValidator, QRegExpValidator, QLocale::toDouble(), and Line Edits Example.
成员类型
enum QDoubleValidator::Notation
This enum defines the allowed notations for entering a double.
Constant | Value | Description |
---|---|---|
QDoubleValidator::StandardNotation | 0 | The string is written as a standard number (i.e. 0.015). |
QDoubleValidator::ScientificNotation | 1 | The string is written in scientific form. It may have an exponent part(i.e. 1.5E-2). |
This enum was introduced or modified in Qt 4.3.
属性
bottom : double
This property holds the validator's minimum acceptable value
By default, this property contains a value of -infinity.
访问函数:
double | bottom() const |
void | setBottom(double) |
参见 setRange().
decimals : int
This property holds the validator's maximum number of digits after the decimal point
By default, this property contains a value of 1000.
访问函数:
int | decimals() const |
void | setDecimals(int) |
参见 setRange().
notation : Notation
This property holds the notation of how a string can describe a number
By default, this property is set to ScientificNotation.
This property was introduced in Qt 4.3.
访问函数:
Notation | notation() const |
void | setNotation(Notation) |
参见 Notation.
top : double
This property holds the validator's maximum acceptable value
By default, this property contains a value of infinity.
访问函数:
double | top() const |
void | setTop(double) |
参见 setRange().
成员函数
QDoubleValidator::QDoubleValidator(QObject *parent = Q_NULLPTR)
Constructs a validator object with a parent object that accepts any double.
QDoubleValidator::QDoubleValidator(double bottom, double top, int decimals, QObject *parent = Q_NULLPTR)
Constructs a validator object with a parent object. This validator will accept doubles from bottom to top inclusive, with up to decimals digits after the decimal point.
QDoubleValidator::~QDoubleValidator()
Destroys the validator.
[virtual]
void QDoubleValidator::setRange(double minimum, double maximum, int decimals = 0)
Sets the validator to accept doubles from minimum to maximum inclusive, with at most decimals digits after the decimal point.
[virtual]
QValidator::State QDoubleValidator::validate(QString &input, int &pos) const
Reimplemented from QValidator::validate().
Returns Acceptable if the string input contains a double that is within the valid range and is in the correct format.
Returns Intermediate if input contains a double that is outside the range or is in the wrong format; e.g. with too many digits after the decimal point or is empty.
Returns Invalid if the input is not a double.
Note: If the valid range consists of just positive doubles (e.g. 0.0 to 100.0) and input is a negative double then Invalid is returned. If notation() is set to StandardNotation, and the input contains more digits before the decimal point than a double in the valid range may have, Invalid is returned. 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.
By default, the pos parameter is not used by this validator.