QIntValidator Class
QIntValidator 클래스는 문자열에 지정된 범위 내의 유효한 정수가 포함되어 있는지 확인하는 유효성 검사기를 제공합니다. 더 보기...
| 헤더: | #include <QIntValidator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속: | QValidator |
속성
공개 함수
| QIntValidator(QObject *parent = nullptr) | |
| QIntValidator(int minimum, int maximum, QObject *parent = nullptr) | |
| virtual | ~QIntValidator() |
| int | bottom() const |
| void | setBottom(int) |
| void | setRange(int bottom, int top) |
| void | setTop(int) |
| int | top() const |
재구현된 공용 함수
| virtual void | fixup(QString &input) const override |
| virtual QValidator::State | validate(QString &input, int &pos) const override |
상세 설명
사용 예시:
QValidator *validator = new QIntValidator(100, 999, this);
QLineEdit *edit = new QLineEdit(this);
// the edit lineedit will only accept integers between 100 and 999
edit->setValidator(validator);다음은 유효성 검사기의 몇 가지 예시입니다. 실제로는 위 예시와 같이 일반적으로 위젯과 연결되어 사용됩니다.
QString str;
int pos = 0;
QIntValidator v(100, 900, this);
str = "1";
v.validate(str, pos); // returns Intermediate
str = "012";
v.validate(str, pos); // returns Intermediate
str = "123";
v.validate(str, pos); // returns Acceptable
str = "678";
v.validate(str, pos); // returns Acceptable
str = "999";
v.validate(str, pos); // returns Intermediate
str = "1234";
v.validate(str, pos); // returns Invalid
str = "-123";
v.validate(str, pos); // returns Invalid
str = "abc";
v.validate(str, pos); // returns Invalid
str = "12cm";
v.validate(str, pos); // returns Invalid999 함수의 반환값이 Intermediate임을 유의하십시오. 최대값 이하의 자릿수로 구성된 값은 중간값으로 간주됩니다. 이는 숫자가 범위 내에 들지 못하게 하는 자릿수가 반드시 마지막으로 입력된 자릿수일 필요는 없기 때문입니다. 또한 이는 중간값에 선행 0이 포함될 수 있음을 의미합니다.
최소값과 최대값은 setRange()을 한 번 호출하여 설정하거나, setBottom() 및 setTop()을 각각 호출하여 개별적으로 설정할 수 있습니다.
QIntValidator는 locale()을 사용하여 숫자를 해석합니다. 예를 들어, 아랍어 로케일에서는 QIntValidator가 아랍어 숫자를 허용합니다.
참고: locale()에설정된 QLocale::NumberOptions 도 숫자가 해석되는 방식에 영향을 미칩니다. 예를 들어, QLocale::RejectGroupSeparator 는 기본적으로 설정되어 있지 않으므로, 유효성 검사기는 그룹 구분자를 허용합니다. 따라서 숫자 값을 얻으려면 QLocale::toInt()을 사용하는 것이 권장됩니다.
QDoubleValidator, QRegularExpressionValidator, QLocale::toInt() 및 라인 편집기 예제도참조하십시오 .
속성 설명서
bottom : int
이 속성은 유효성 검사기가 허용하는 가장 작은 값을 저장합니다.
기본적으로 이 속성의 값은 사용 가능한 가장 작은 부호 있는 정수(-2147483648)에서 파생됩니다.
액세스 함수:
| int | bottom() const |
| void | setBottom(int) |
setRange()도 참조하십시오 .
top : int
이 속성은 유효성 검사기가 허용하는 최대 값을 저장합니다.
기본적으로 이 속성의 값은 사용 가능한 최대 부호 있는 정수(2147483647)에서 파생됩니다.
액세스 함수:
| int | top() const |
| void | setTop(int) |
setRange()도 참조하십시오 .
멤버 함수 설명서
[explicit] QIntValidator::QIntValidator(QObject *parent = nullptr)
모든 정수를 허용하는 parent 객체를 사용하여 유효성 검사기를 생성합니다.
QIntValidator::QIntValidator(int minimum, int maximum, QObject *parent = nullptr)
parent 을 사용하는 유효성 검사기를 생성하며, 이 유효성 검사기는 minimum 부터 maximum 까지(해당 값 포함)의 정수를 허용합니다.
[virtual noexcept] QIntValidator::~QIntValidator()
밸리데이터를 삭제합니다.
[override virtual] void QIntValidator::fixup(QString &input) const
QValidator::fixup(QString &input) const를 재구현합니다.
void QIntValidator::setRange(int bottom, int top)
유효성 검사기의 범위를 bottom 과 top 사이의 정수(해당 값 포함)만 허용하도록 설정합니다.
[override virtual] QValidator::State QIntValidator::validate(QString &input, int &pos) const
QValidator::validate(QString &input, int &pos) const를 재구현합니다.
input 가 유효한 범위에 속하는 정수인 경우 Acceptable 를 반환합니다. input 의 자릿수가 범위의 상한과 같거나 그보다 적거나, 유효한 범위에 속하는 정수의 접두사인 경우 Intermediate 를 반환합니다. 그 외의 경우에는 Invalid 를 반환합니다.
input 유효 범위가 양의 정수만으로 구성되어 있고(예: 32부터 100까지), input 가 음의 정수인 경우 Invalid가 반환됩니다. (반면, 유효 범위가 음의 정수(예: -100에서 -32)로 구성되어 있고 가 선행 플러스 기호가 없는 양의 정수인 경우, 사용자가 곧 마이너스 기호를 입력하려고 할 수도 있으므로(특히 오른쪽에서 왼쪽으로 읽는 언어의 경우) Intermediate가 반환됩니다.
마찬가지로, 유효한 범위가 46에서 53 사이인 경우, 41과 59는 ' Intermediate'으로 평가됩니다. 그렇지 않으면 사용자가 값을 49에서 51로 변경할 수 없기 때문입니다.
int pos = 0;
s = "abc";
v.validate(s, pos); // returns Invalid
s = "5";
v.validate(s, pos); // returns Intermediate
s = "50";
v.validate(s, pos); // returns Acceptable기본적으로 이 유효성 검사기는 ` pos ` 매개변수를 사용하지 않습니다.
© 2026 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.