본문 바로가기
QT

QT02. 기본 프로그램 만들기

by 정양섭 2022. 2. 27.

1. 프로젝트 생성

시작메뉴를 선택하여 Qt 폴더의 Qt Creator 6.0.2(Community)를 실행하면 다음과 같이 Qt Creator가 실행됩니다.

New를 클릭하면 다음과 같이 화면에 나타납니다.

Choose..를 선택하면 다음과 같이 화면에 나타납니다.

Name에 생성할 프로젝트 명인 BasicProgram을 입력하고, Create in에 QT소스를 관리할 적당한 폴더를 만들어 선택합니다(주의사항 : 해당 폴더에 한글이 들어있으면 디버깅이 정상적으로 되지 않으므로 영문으로 된 폴더를 만들어 선택해야 합니다). 이후 해당 폴더로 초기값이 표시되도록 Use as default project location을 체크합니다.

Next를 클릭하면 다음과 같이 화면에 나타납니다.

Build system이 CMake로 되어 있으면 qmake로 수정합니다(한번만 수정하면 유지됩니다).

Next를 클릭하면 다음과 같이 화면에 나타납니다.

Next를 클릭하면 다음과 같이 화면에 나타납니다.

Language에 Korean(South Korea)을 선택하고 Next를 클릭하면 다음과 같이 화면에 나타납니다.

최근에 개발된 컴파일러들이 그러하듯 프로그램에 들어가는 모든 글자는 영어로 개발하고, 다른 언어는 영어에 해당하는 글자를 번역해서 넣어 주면, 바로 그 언어로 표현이 가능하게 됩니다. 그를 위해 사용할 파일을 생성하는 역할을 합니다. 여기서는 이정도만 알아두고 이후에 자세히 설명하도록 하겠습니다.

Desktop Qt 6.2.3 MSVC2019 64bit를 체크하고 Next를 클릭하면 다음과 같이 화면에 나타납니다.

Finish를 클릭하면 Qt Creator에 프로젝트가 추가되어 다음과 같이 나타납니다.

F5를 눌러 실행하면 다음과 같이 프로그램이 실행됩니다.

2. 메뉴

mainwindow.ui를 드블클릭하면 다음과 같이 화면에 나타납니다(이후 mainwindow 디자이너라 표현).

Type Here를 더블클릭하여 File을 입력하면 다음과 같이 화면이 바뀝니다.

Type Here를 더블클릭하여 Open을 입력하면 다음과 같이 화면이 바뀝니다.

Open을 입력했으므로 actionOpen이라는 action이 자동으로 생성됩니다.

actionOpen에서 마우스 오른쪽 버튼을 누르면 다음과 같이 팝업 메뉴가 나타납니다.

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

triggered()를 선택하고 OK를 누르면 다음과 같이 Open 메뉴를 실행했을때 실행할 함수를 자동으로 생성하여 표시합니다.

소스를 조금 추가하여 Open 메뉴을 누르면 Selected open menu라는 메시지 박스가 나타나도록 수정합니다.

about 함수의 두번째 인자(제목 표시)와 세번째 인자(내용 표시)에 tr함수를 사용하여 문자열을 입력한 것은 다국어 지원시 사용하는 부분이며, 이후에 설명할 예정입니다.

 

3. 툴바

툴바에는 이미지가 들어가도록 구성할 예정이므로, 우선 여기를 클릭하여 이미지를 다운받아 프로젝트 폴더(여기서는 D:\User\JYS\QT\Education\BasicProgram)에 Images라는 폴더를 만들어 넣어줍니다.

이제 프로그램에서 이미지를 사용하기위해 Resources에 등록해보도록 하겠습니다.

좌측 프로젝트 바의 프로젝트 이름에서 마우스 오른쪽 버튼을 클릭하면 다음과 같이 화면에 나타납니다.

Add New를 선택하면 다음과 같이 대화상자가 화면에 나타납니다.

Qt를 선택하면 다음과 같이 화면에 나타납니다.

Qt Resource File를 선택한 후 Choose를 클릭하면 다음과 같이 화면에 나타납니다.

File name에 Resources라고 입력하고 Next를 입력하면 다음과 같이 화면에 나타납니다.

Finish를 선택하면 다음과 같이 프로젝트에 Resources가 추가되고 Resources를 편집할 수 있는 편집기가 열립니다.

이후에 Resources를 편집하고자 한다면 Resources.qrc에서 마우스 우측 버튼을 눌러 생성된 팝업메뉴에서 Open in Editor를 실행하면 됩니다.

Add Prefix를 누르면 다음과 같이 화면에 나타납니다.

Prefix에 /new/prefix1대신 /를 입력하면 화면은 다음과 같이 바뀝니다.

Add Files를 클릭하면 다음과 같이 화면에 나타납니다.

Images를 더블클릭하면 다음과 같이 화면에 나타납니다.

파일을 모두 선택한 후 열기를 클릭하면 다음과 같이 파일이 리소스에 추가됩니다.

Alt + S 키를 눌러 Resources를 저장합니다.

 

mainwindow 디자이너에서 마우스 오른쪽 버튼을 누르면 다음과 같이 팝업 메뉴가 화면에 나타납니다.

Add Tool Bar를 클릭하면 다음과 같이 Tool Bar가 추가됩니다.

actionOpen을 마우스로 클릭하여 툴바로 드래그앤드롭을하면 다음과 같이 Open이 툴바에 등록됩니다.

우측하단의 icon에서 아래삼각형 버튼을 클릭하여 생성된 팝업메뉴에서 Choose Resource를 선택하면 다음과 같이 화면에 나타납니다.

Images를 선택하면 다음과 같이 화면이 바뀝니다.

open.png를 선택하고 OK를 클릭하면 다음과 같이 툴바에 등록한 아이콘의 모양이 바뀌게 됩니다.

이제 메뉴에 없는 항목을 툴바에 추가해 보도록 하겠습니다.

action바에서 New를 클릭하면 다음과 같이 화면에 나타납니다.

Text에 Save를 Object name에 actionSave를 입력하고 OK를 클릭하면 다음과 같이 actionSave가 추가됩니다.

같은 방식으로 툴바에 actionSave를 드래그앤드롭을하고, save.png를 icon으로 적용하면 다음과 같이 화면에 나타납니다.

actionSave는 actionOpen과 달리 메뉴에 등록한 내용이 아니므로 아직 클릭했을때의 동작을 설정하지 않았습니다.

actionSave에서 마우스 우측 버튼을 눌러 생성된 팝업메뉴에서 Go to slot를 실행하면 다음과 같이 화면에 나타납니다.

triggered()를 선택하고 OK를 누르면 다음과 같이 Save 메뉴를 실행했을때 실행할 함수를 자동으로 생성하여 표시합니다.

Open 에 구현한 내용을 복사해와 save로만 수정하여 작성합니다.

이제 몇가지 콘트롤들을 배치해서 사용해보도록 하겠습니다.

콤보박스를 하나 배치하고, 콤보박스에 선택된 문자를 Label에 표시하며, 종료 버튼을 하나 만들어 보겠습니다.

나머지 콘트롤들은 비슷한 개념으로 사용하면 되므로, 차츰 익혀나가면 될것입니다.

mainwindow.ui를 열면 다음과 같이 화면에 나타납니다.

Push Button을 마우스로 누른 후 mainwindow.ui에 드래크앤드랍을 하면 다음과 같이 Push Button이 배치됩니다.

배치된 PushButton을 더블클릭하면 편집 모드로 바뀌며 Exit라고 입력하면 다음과 같이 바뀝니다.

우측 하단의 objectName 옆의 pushButton을 클릭하여 pushButtonExit로 이름을 변경합니다.

Exit 버튼에서 마우스 오른쪽 버튼을 누르면 다음과 같이 화면에 나타납니다.

Go to slot을 실행하면 다음과 같이 Push Button에서 지원하는 slot 함수들이 표시되어 나타납니다.

clicked를 선택하고 OK를 누르면 다음과 같이 버튼을 클릭했을때 실행되는 함수가 자동으로 생성되어 나타납니다.

다음과 같이 close(); 라고 입력하면 버튼을 눌렀을때 프로그램이 종료되게 됩니다.

mainwindow.ui를 다시 열어 콘트롤 창의 스크롤을 아래로 내리면 다음과 같이 화면에 나타납니다.

Combo Box와 Label을 Push Button과 같은 방식으로 배치를 하면 다음과 같이 화면에 나타납니다.

Combo box를 선택한 후 objectName에 comboBoxSelect라고 입력하고, Label을 선택한 후 objectName에 labelResult라고 입력합니다.

배치된 Combo box에서 마우스로 더블클릭하면 다음과 같이 화면에 나타납니다.

+를 선택하면 다름과 같이 아이템이 추가됩니다.

New Item에 Select1이라고 입력합니다.

같은 방식으로 다음과 같이 Select4까지 입력합니다.

OK를 선택하면 프로그램 실행시 Select1~4까지 4개의 아이템이 추가될 것입니다.

mainwindow.ui에서 우측 속성 편집기의 스크롤을 아래로 내리면 다음과 같이 화면에 나타납니다.

프로그램 실행시 Select1이 선택되도록 currentIndex를 0으로 설정합니다.

Combo Box에서 마우스 오른쪽 버튼을 누르면 다음과 같이 화면에 나타납니다.

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

currentTextChanged(QString)을 선택하고 OK를 누르면 다음과 같이 Combo Box의 선택을 바꾸었을때 실행되는 함수가 자동으로 생성되어 나타납니다.

Combo Box의 선택된 문자를 Label에 표시하도록 다음과 같이 입력합니다.

labelResult는 Label에 입력한 objectName이며 setText함수를 이용하여 Label에 설정했습니다.

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

아이템 선택이 바뀌었을때만 Label에 설정하도록 구성했으므로 Label의 초기값이 그대로 표시됩니다.

다음과 같이 Combo Box의 선택을 바꾸면 Label에 그 문자로 표시가 됩니다.

MainWindow의 생성자에서 다음과 같이 입력하면 초기값을 Combo Box의 선택된 문자로 표시하게 됩니다.

 

예제 프로그램

BasicProgram.zip
0.01MB

 

'QT' 카테고리의 다른 글

QT07. 메모리 및 마우스 처리  (0) 2022.03.06
QT05. 대화상자  (0) 2022.03.04
QT04. GUI  (0) 2022.03.01
QT03. MDI 및 아이콘  (0) 2022.02.27
QT01. 설치하기  (0) 2022.02.25