728x90
QLineEdit을 사용할 때 입력 값을 제한하고 싶을 때가 있습니다. 이럴 때 사용할 수 있는게 QValidator 입니다.
QValidator는 QIntValidator, QDoubleValidator, QRegExpValidator가 있습니다. QIntValidator는 정수 값 제한, QDoubleValidator는 소수형 데이터 제한, QRegExpValidator는 정규식 표현을 통해 제한을 시킬 수 있습니다.
void setValidator()
{
QLineEdit* lineedit = new QLineEdit(this);
QIntValidator* intValidator = new QIntValidator(0,100);
lineedit->setValidator(intValidator);
QDoubleValidator* doubleValidator = new QDoubleValidator(0.0, 20.0, 2);
doubleValidator->setNotation(QDoubleValidator::StandardNotation);
QLineEdit* lineedit = new QLineEdit(this);
lineedit->setValidator(doubleValidator);
QRegExp qRegExp("^[0-9]{1,2}[.][0-9]{1,2}$"); // 2자리 정수, 소수로 입력
QRegExpValidator* regValidator = new QRegExpValidator(qRegExp);
lineedit->setValidator(regValidator);
}
QDoubleValidator의 경우 Notation을 설정하지 않으면 정수 부분이 제대로 제한이 걸리지 않습니다.
QRegExpValidator은 특정 상황에서 제한을 걸 때 유용하게 사용할 수 있습니다. 아이피를 입력받는다던가 비밀번호를 입력받는다던가 하는 상황에서 유용합니다.
자주 사용하거나 유용한 정규 표현식은 어포스트님 블로그에 정리되어 있는 이 글를 참고하시면 좋습니다.
728x90
'Programming > Qt' 카테고리의 다른 글
Qt Creator white space 표시 제거 (0) | 2022.01.18 |
---|---|
Qt ToolTip (0) | 2021.08.17 |
Qt wkhtmltopdf로 컨버팅 시 테이블에 빈 공간 출력되는 증상 해결법 (0) | 2021.04.28 |
Qt for Desktop (cmd 창) doskey로 명령어 등록해 사용하기 (0) | 2021.04.05 |
Qt Creator FTH 에러 메시지 (0) | 2021.03.23 |