QLineEdit을 사용할 때 입력 값을 제한하고 싶을 때가 있습니다. 이럴 때 사용할 수 있는게 QValidator 입니다.
QValidator Class | Qt GUI 5.15.3
QValidator Class The QValidator class provides validation of input text. More... Public Types enum State { Invalid, Intermediate, Acceptable } Public Functions Signals Detailed Description The class itself is abstract. Two subclasses, QIntValidator and QDo
doc.qt.io
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을 설정하지 않으면 정수 부분이 제대로 제한이 걸리지 않습니다.
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
QRegExpValidator은 특정 상황에서 제한을 걸 때 유용하게 사용할 수 있습니다. 아이피를 입력받는다던가 비밀번호를 입력받는다던가 하는 상황에서 유용합니다.
자주 사용하거나 유용한 정규 표현식은 어포스트님 블로그에 정리되어 있는 이 글를 참고하시면 좋습니다.
복사해서 바로 사용하는 자주 사용하는 정규표현식(Regular Expression) Top 20
1. 영문자 소문자, 숫자, "-", "_" 로만 구성된 길이 2 ~ 10자리 사이 문자열 /^[a-z0-9_-]{2,10}$/ 2. 신용카드 번호 19자리 숫자와 "-": /^[0-9-]{19}$/ 4-4-4-4 체크: /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9..
blogpack.tistory.com
'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 |