2015. 12. 17. 01:18

0071 - HTML 태그를 인식하는 위젯

참고 영상

QT 의 GUI 동작에 기여하는 컨트롤인 위젯들은 HTML 태그를 인식하고 있습니다. 이를 실제로 입력하면 어떤 결과가 나오는지 확인 합니다.

1. QT Project 를 생성합니다.

Choose a template

Projects : Application / Qt Widgets Application (참고 영상과 다르게 제가 가지고 있는 QT Creator 에서는 Empty Qt Project 는 존재하지 않습니다.)

QT Widgets Application

Name: 007_Minimal

Create in : D:\Work (작업 공간에 따라 다른 곳을 지정하시면 됩니다.)

Kit Selection

Desktop Qt 5.5.0 MinGW 32bit

Details

Class Information 에서는 Base class 를 QDialog 선택하고 Next 를 선택합니다.

Project Management 는 그대로 두고 Finish 를 입력합니다.

2. Build 를 하여 정상적으로 응용 프로그램이 생성되면 다음의 File 을 아래와 같은 방법으로 선택하여 삭제합니다.

  • dialog.h
  • dialog.cpp
  • dialog.ui

먼저 Headers 에 있는 dialog.h 를 마우스 오른쪽 버튼을 눌러서 Remove File... 을 선택합니다.

Delete file permanently 를 표시 한 뒤 OK 를 선택합니다.

File has been removed 창은 파일은 삭제가 되었는데, 해당 파일이 편집기에서 열려 있는 경우 무효화 된 열린 File 을 다시 저장할지, 다른 이름으로 저장하거나 그대로 닫아서 사라지게 할 수 있습니다.

해당 File 이 필요가 없으므로 여기서는 Close 를 선택하여 삭제합니다.

dialog.cpp 와 dialog.ui 에 대해서도 같은 방법으로 삭제 합니다.

007_Minimal.pro 파일을 열면 아래와 같이, 삭제된 File 들이 자동으로 제거 되어 있습니다.

3. main.cpp 을 수정합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <QLabel>
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    QLabel *label = new QLabel("Hello World");
    label->show();
    label->setAttribute(Qt::WA_DeleteOnClose, true);
 
    return a.exec();
}
cs

setAttribute 를 추가하는 이유는 프로그램 종료시 동적으로 할당된 label 을 자동으로 반환하게 설정을 하여 메모리 누수를 예방하기 위함입니다.

실행을 하면 다음과 같이 화면에 나타납니다.

4. QLabel 의 생성자에 HTML Tag 를 추가합니다.

HTML Tag 은 <b> 나 <i> 또는 <font> 같은 Tag 를 입력하면 Label 위젯에 해당 내용이 반영이 됩니다. QLabel 의 내용에 다음의 내용으로 변경해서 실행 해봅니다.

    QLabel *label = new QLabel("<b>Hello</b> <font color=red><i>World</i></font>");

다음과 같이 HTML 태그가 반영된 QLabel 위젯이 생성됨을 볼 수 있습니다.

작업 파일

007_Minimal.zip