반응형
http://doc.qt.io/qt-5/qregexp.html
Qt에서 정규식을 사용하려면 다음과 같은 헤더파일이 필요합니다.
1 |
#include <qregexp.h> |
cs |
▶ 예제1 - 첫 번째 문자가 숫자인지 검사
1
2
3
4
5
6
7 |
QRegExpValidator validator(QRegExp("\\d"),0);
QString text = "7";
int pos = 0;
if ( validator.validate(text,pos) == validator.Acceptable )
{
qDebug() << "The first character is a number";
} |
cs |
QValidator는 입력 텍스트의 유효성을 검사하고 ,
정규식에 대응하는 패턴에 따라서 다음과 같은 상태값을 반환합니다.
※ enum QRegExpValidator :: State
Constant | Value | Description |
---|---|---|
QValidator::Invalid |
0 |
문자열이 유효하지 않습니다. |
QValidator::Intermediate |
1 |
문자열이 부분적으로 일치합니다. |
QValidator::Acceptable |
2 |
문자열이 유효합니다. |
validate로 pos(커서위치)에 해당하는 text가 유효한지 검사합니다.
▶ 예제2 - 주어진 문자열이 ip인지 검사
1 2 3 4 5 6 7 8 9 | // ipregex 0.0.0.0 ~ 255.255.255.255 사이의 유효한 값 // QRegExp rx("(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])"); // ipregex 0~255 사이의 유효한 값 QRegExp rx("(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])"); QRegExpValidator *validator = new QRegExpValidator(rx,this); ui->IpEdit1->setValidator(validator); ui->IpEdit2->setValidator(validator); ui->IpEdit3->setValidator(validator); ui->IpEdit4->setValidator(validator); | cs |
LineEdit에 정규식을 적용시켜서 특정 패턴을 가진 문자만 입력할 수 있도록 설정합니다.
반응형
'프로그래밍 > 시스템' 카테고리의 다른 글
C++ Qt 다이얼로그 데이터 전송 (0) | 2018.03.15 |
---|---|
C++ Qt 메시지박스 (0) | 2018.03.15 |
C++ Qt 파일 입출력 , 파일 변화 감지 (0) | 2018.03.12 |
C++ Qt TreeWidget (0) | 2018.03.12 |
C++ Qt 간단한 로그인 폼 만들기 (0) | 2018.03.12 |