[Qt] QMutex

이번 글에서는 QMutex에 대해 알아보겠습니다. QMutex는 멀티 쓰레드 상황에서 공유된 자원에 대해 동시에 엑세스 할 때 사용되는 동기화 클래스 입니다. QMutex를 사용하기 위해서는 아래와 같이 헤더 파일을 include 해야합니다. QMutex의 사용 방법은 간단합니다. 어떤 상황에서 사용되는지 알아보겠습니다. Thread의 run 함수에서 ‘특정 작업이 시작되고 종료될 동안 값이 변하지 말아야 하는 변수’가 있어야 한다고 가정해 봅시다.이 상황을 … Read more

Categories Qt Tags

[Qt] QThread

이번 글에서는 Qt 에서 QThread를 사용하는 방법에 대해 알아보겠습니다. QThread는 QTimer와 다르게 신호를 발생시키지 않고, 별도의 쓰레드를 생성하여 특정 작업을 수행합니다. QThread에서 자주 사용하는 함수들은 아래와 같습니다. MyThread 클래스 생성 쓰레드를 시작했을 때 작업할 내용을 구현하려면 QThread 클래스를 상속받는 클래스를 하나 생성한 뒤, run 함수를 재정의 해야합니다. [프로젝트 우클릭]-[Add New]를 선택해줍니다. 그다음 [C/C++]-[C++ Class]를 선택해줍니다. … Read more

Categories Qt Tags

[Qt] QTimer

이번 글에서는 QTimer에 대해 알아보겠습니다. QTimer는 일정 시간 간격마다 특정 작업을 실행하거나, 일정 시간 뒤에 특정 작업을 실행하는데 사용되는 클래스 입니다. QTimer를 사용하기 위해서는 QTimer 헤더 파일을 include 해야합니다. 아래 함수는 QTimer에서 대표적으로 사용되는 함수 입니다. QTimer를 이용해서 1초마다 시간을 표시하는 위젯을 만들어 보겠습니다. 아래와 같이 라벨 두 개와 버튼 세 개를 만들어 보겠습니다. 그 … Read more

Categories Qt Tags

[Qt] QFile, QDir

이번 글에서는 디렉토리 탐색 기능을 제공하는 QDir과 파일 입출력 기능을 제공하는 QFile에 대해 알아보겠습니다. QDir QDir 클래스를 사용하려면 다음과 같이 헤더 파일을 포함해야 합니다. QDir 클래스는 다양한 경로를 얻을 수 있는 함수를 제공합니다. QDir 반환 QString 반환 설명 QDir::current(); QDir::currentPath(); 현재 디렉토리 경로를 반환합니다. QDir::home(); QDir::homePath(); 사용자의 홈 디렉토리 경로를 반환합니다. QDir::temp(); QDir::tempPath(); 시스템의 임시 … Read more

Categories Qt Tags

[C++] 정규표현식, regex

이번 글에서는 C++에서 정규표현식(Regular Expression)을 사용하는 방법에 대해 알아보겠습니다. 정규표현식의 사전적 의미로는 ‘특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어’ 입니다.보통 프로그래밍에서는 문자열에서 패턴의 매칭 여부나, 검색, 문자열을 변경하는데 사용됩니다. 아래는 대표적으로 사용되는 정규표현식의 문법 목록입니다. 문법 설명 . 임의의 한 문자 ^ 문자열 시작 $ 문자열 끝 * 앞의 문자가 0번 이상 … Read more

Categories C++

[Qt] QByteArray, QByteArrayMatcher 

이번 글에서는 QByteArray와 QByteArrayMatcher 사용법에 대해 알아보겠습니다.QByteArray는 클래스 이름에서 보이듯이 바이트 배열에 대해 편의를 제공하는 클래스입니다.1바이트 단위의 배열을 제공하며 보통 16진수 배열, 문자열을 다룰때 자주 사용됩니다. QByteArray 선언 QByteArray를 선언할 땐 아래와 같이 선언 할 수 있습니다. 16진수로 이루어진 배열로 초기화 하고싶을 땐 QByteArray::fromHex 함수를 사용하여 초기화 할 수 있습니다. QByteArray 멤버 함수 prepend와 append … Read more

Categories Qt Tags

[Qt] QBitArray

이번 글에서는 QBitArray를 사용하는 방법에 대해 알아보겠습니다.QBitArray는 비트 배열을 제공하는 클래스 입니다. 해당 클래스를 사용하면 제공하는 기능으로 비트배열에 대해 연산하기가 편합니다. QBitArray 선언 QBitArray는 객체를 선언함과 동시에 배열의 크기를 설정하거나 선언과 동시에 값을 설정할 수도 있습니다. QBitArray 사이즈 설정 QBitArray의 크기는 resize 함수를 통해서 설정 할 수 있습니다. QBitArray 값 설정 비트에 값을 설정하는 방법은 … Read more

Categories Qt Tags

[Qt] Container Class – 3. QMap

이번 글에서는 QMap에 대해 알아보겠습니다. QMap 클래스도 자료구조에서 맵을 구현한 클래스입니다.맵은 키(Key)와 값(Value)이 쌍을 이루며 하나의 키에는 하나의 값이 매핑이 됩니다. 맵은 키를 통해 값에 접근할 수 있게 하는 자료구조인데 그렇기 때문에 키는 중복을 허용하지 않습니다.(값은 중복 가능합니다.) 더 자세한 개념은 구글에 검색해보시길 바랍니다. QMap 선언 QMap 선언 방법은 아래와 같습니다. Key(키)와 T(값)에 자료형을 입력하여 … Read more

Categories Qt Tags

[Qt] Container Class – 2. QQueue, QStack

이전 글에 이어서 QQueue, QStack에 대해 알아보겠습니다. QQueue와 QStack 클래스는 자료구조에서 큐와 스택을 구현한 클래스이며, 모두 QList를 상속받아서 만들어 졌습니다.QList와 큰 차이는 없으며 QList의 모든 함수를 사용할 수 있습니다. 큐와 스택의 가장 큰 차이는 입력한 데이터의 출력 순서입니다. QQueue QStack First In First Out(FIFO, 선입선출) First In Last Out(FILO, 선입후출) 은행 업무프린터 인쇄 대기열 Undo/Redo웹 … Read more

Categories C++

[Qt] Container Class – 1. QList

STL Container Class와 같이 Qt에서도 Container Class를 제공해줍니다. 이번 글에서는 자주 사용되는 Container Class에 종류를 알아 보고 대표적으로 QList사용법에 대해 알아보겠습니다. 자주 사용되는 Qt Container Class 목록은 아래와 같습니다. QList 선언 QList 클래스 변수 사용 시 아래 예시처럼 T에 타입을 입력하면 됩니다. QList 삽입 QList에 삽입 하려면 아래와 같이 코딩해줍니다. 실행하면 아래와 같이 출력합니다. QList … Read more

Categories Qt Tags