QDoubleValidator Class
QDoubleValidator 클래스는 부동 소수점 숫자의 범위 검사를 제공합니다. 더 보기...
Header: | #include <QDoubleValidator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
상속합니다: | QValidator |
공용 유형
enum | Notation { StandardNotation, ScientificNotation } |
속성
공용 함수
QDoubleValidator(QObject *parent = nullptr) | |
QDoubleValidator(double bottom, double top, int decimals, QObject *parent = nullptr) | |
virtual | ~QDoubleValidator() |
double | bottom() const |
int | decimals() const |
QDoubleValidator::Notation | notation() const |
void | setBottom(double) |
void | setDecimals(int) |
void | setNotation(QDoubleValidator::Notation) |
void | setRange(double minimum, double maximum, int decimals) |
void | setRange(double minimum, double maximum) |
void | setTop(double) |
double | top() const |
재구현된 공용 함수
(since 6.3) virtual void | fixup(QString &input) const override |
virtual QValidator::State | validate(QString &input, int &pos) const override |
신호
void | bottomChanged(double bottom) |
void | decimalsChanged(int decimals) |
void | notationChanged(QDoubleValidator::Notation notation) |
void | topChanged(double top) |
상세 설명
QDoubleValidator는 소수점 뒤 자릿수에 대한 상한, 하한 및 제한을 제공합니다.
setRange() 또는 setBottom() 및 setTop()를 사용하여 한 번의 호출로 허용 범위를 설정할 수 있습니다. setDecimals ()로 소수점 이하 자릿수를 설정합니다. validate () 함수는 유효성 검사 상태를 반환합니다.
QDoubleValidator는 locale()를 사용하여 숫자를 해석합니다. 예를 들어 독일어 로캘에서는 "1,234"를 분수 1.234로 받아들입니다. 아랍어 로캘에서는 QDoubleValidator가 아랍어 숫자를 받아들입니다.
참고: locale()에 설정된 QLocale::NumberOptions 도 숫자가 해석되는 방식에 영향을 줍니다. 예를 들어 QLocale::RejectGroupSeparator 는 기본적으로 설정되어 있지 않으므로( "C"
로캘 제외), 유효성 검사기는 그룹 구분 기호를 허용합니다. 문자열이 유효성 검사를 통과하면 locale().toDouble()로 전달하여 숫자 값을 얻습니다.
QIntValidator, QRegularExpressionValidator, QLocale::toDouble() 및 줄 편집 예시도참조하세요 .
멤버 유형 문서
enum QDoubleValidator::Notation
이 열거형은 이중을 입력할 때 허용되는 표기법을 정의합니다.
Constant | 값 | 설명 |
---|---|---|
QDoubleValidator::StandardNotation | 0 | 문자열은 표준 형식으로 작성되며, 정수 부분 뒤에 선택적으로 구분 기호 및 분수 부분이 뒤따릅니다(예: "0.015" ). |
QDoubleValidator::ScientificNotation | 1 | 문자열은 표준 형식에 선택적으로 지수 부분을 추가하는 과학적 형식으로 작성됩니다(예: "1.5E-2" ). |
정수 부분에는 평소와 같이 기호를 포함할 수 있습니다. 분수 부분, 지수 및 모든 자릿수 그룹화 구분 기호와 함께 로캘에 따라 달라집니다. QDoubleValidator 은 자릿수 그룹화 구분 기호의 위치를 확인하지 않지만(로캘에 따라 달라질 수 있음) QLocale::RejectGroupSeparator 이 locale().numberOptions()
에 설정된 경우 해당 구분 기호가 포함된 입력은 거부합니다.
QLocale::numberOptions(), QLocale::decimalPoint(), QLocale::exponential() 및 QLocale::negativeSign()도 참조하세요 .
속성 문서
bottom : double
이 속성은 유효성 검사기의 허용 가능한 최소값을 보유합니다.
기본적으로 이 프로퍼티에는 -infinity 값이 포함됩니다.
액세스 함수:
double | bottom() const |
void | setBottom(double) |
알림 신호:
void | bottomChanged(double bottom) |
setRange()도 참조하세요 .
decimals : int
이 속성은 유효성 검사기의 소수점 이하 최대 자릿수를 보유합니다.
기본적으로 이 속성은 -1 값을 포함하며, 이는 자릿수 제한 없이 허용됨을 의미합니다.
기능에 액세스합니다:
int | decimals() const |
void | setDecimals(int) |
알림 신호:
void | decimalsChanged(int decimals) |
setRange()도 참조하세요 .
notation : Notation
이 속성은 문자열이 숫자를 설명할 수 있는 표기법을 저장합니다.
기본적으로 이 속성은 ScientificNotation 로 설정됩니다.
함수에 액세스합니다:
QDoubleValidator::Notation | notation() const |
void | setNotation(QDoubleValidator::Notation) |
알림 신호:
void | notationChanged(QDoubleValidator::Notation notation) |
Notation 를참조하세요 .
top : double
이 속성은 유효성 검사기의 허용 가능한 최대 값을 보유합니다.
기본적으로 이 프로퍼티에는 무한대 값이 포함됩니다.
액세스 함수:
double | top() const |
void | setTop(double) |
알림 신호:
void | topChanged(double top) |
setRange()도 참조하세요 .
멤버 함수 문서
[explicit]
QDoubleValidator::QDoubleValidator(QObject *parent = nullptr)
모든 이중을 허용하는 parent 객체로 유효성 검사기 객체를 구성합니다.
QDoubleValidator::QDoubleValidator(double bottom, double top, int decimals, QObject *parent = nullptr)
parent 객체로 유효성 검사기 객체를 구축합니다. 이 유효성 검사기는 소수점 뒤에 최대 decimals 자릿수를 포함하여 bottom ~ top 까지의 복수를 허용합니다.
[virtual noexcept]
QDoubleValidator::~QDoubleValidator()
유효성 검사기를 삭제합니다.
[override virtual, since 6.3]
void QDoubleValidator::fixup(QString &input) const
재구현합니다: QValidator::fixup(QString &input) const.
이것은 오버로드된 함수입니다.
input 문자열을 복수의 Acceptable 표현으로 수정하려고 시도합니다.
숫자의 형식은 notation(), decimals(), locale() 및 후자의 numberOptions()에 의해 결정됩니다.
notation()를 준수하기 위해 ScientificNotation 을 사용할 경우 고정값은 정규화된 형태로 표시되며, 이는 0이 아닌 값은 소수점 앞에 0이 아닌 자릿수가 하나 더 있다는 것을 의미합니다.
QString input = "0.98765e2"; QDoubleValidator val; val.setLocale(QLocale::C); val.setNotation(QDoubleValidator::ScientificNotation); val.fixup(input); // input == "9.8765e+01"
decimals()를 준수하기 위해 -1
인 경우 사용되는 자릿수는 QLocale::FloatingPointShortest 에 의해 결정됩니다. 그렇지 않으면 길이가 decimals()를 초과하는 경우 숫자의 분수 부분이 잘립니다(필요에 따라 반올림). notation ()가 ScientificNotation 인 경우 이는 숫자가 정규화된 형태로 입력된 후에 수행됩니다.
input = "-1234.6789"; val.setDecimals(2); val.setLocale(QLocale::C); val.setNotation(QDoubleValidator::StandardNotation); val.fixup(input); // input == "-1234.68"
참고: decimals()가 std::numeric_limits<double>::digits10
이상으로 설정되어 있고 문자열이 제공하면 분수 부분에서 그 이상의 자릿수가 변경될 수 있습니다. 결과 문자열은 double
로 구문 분석될 때 동일한 부동 소수점 숫자로 인코딩됩니다.
이 함수는 Qt 6.3에 도입되었습니다.
void QDoubleValidator::setRange(double minimum, double maximum, int decimals)
유효성 검사기가 소수점 뒤에 최대 decimals 자릿수를 포함하여 minimum ~ maximum 까지의 복수를 허용하도록 설정합니다.
참고: 소수점 이하 자릿수를 -1로 설정하면 사실상 무제한으로 설정됩니다. 이 값은 기본으로 구성된 유효성 검사기에서 사용하는 값이기도 합니다.
void QDoubleValidator::setRange(double minimum, double maximum)
이 함수는 오버로드된 함수입니다.
유효성 검사기가 소수점 뒤 자릿수를 변경하지 않고 minimum 에서 maximum 까지의 복수를 허용하도록 설정합니다.
[override virtual]
QValidator::State QDoubleValidator::validate(QString &input, int &pos) const
재구현합니다: QValidator::validate(QString &input, int &pos) const.
input 문자열이 올바른 형식이고 유효한 범위 내에 더블을 포함하면 Acceptable 을 반환합니다.
input 형식이 잘못되었거나 범위를 벗어난 배수를 포함하면 Intermediate 을 반환합니다.
input 이 복수를 나타내지 않거나 소수점 뒤에 자릿수가 너무 많으면 Invalid 을 반환합니다.
참고: 유효한 범위가 양수(예: 0.0~100.0)로만 구성되어 있고 input 이 음수인 경우 Invalid 이 반환됩니다. notation ()가 StandardNotation 으로 설정되어 있고 입력에 유효한 범위의 소수점 이하 자릿수보다 소수점 앞에 더 많은 자릿수가 포함된 경우 Invalid 이 반환됩니다. notation ()가 ScientificNotation 이고 입력이 유효한 범위가 아닌 경우 Intermediate 이 반환됩니다. 지수를 변경하면 값이 유효해질 수 있습니다.
기본적으로 pos 매개 변수는 이 유효성 검사기에서 사용되지 않습니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.