2015. 7. 23. 02:49

0030 - GUI 프로그래밍 소개 / 프로젝트 생성하기

참고 영상

간단하게 QT 로 GUI Application 을 만들어 봅니다.

작업 파일

1. QT Creator 를 실행하고 File -> New File or Project 를 선택합니다.

2. Template 은 사용하고 계시는 Qt 의 Version 마다 다를수 있는 부분입니다. 예전에는 Qt Gui Application 을 선택했는데, 현재 (5.5) 는 Qt Widgets Application 을 선택합니다.

3. Project 명을 입력합니다. 저장될 장소를 Create in 항목으로 확인하고 003_GUI 로 지정후 Next 를 입력합니다.

4. Kit Selection 에서 Qt 를 설치할 때 선택했던 Kit 를 선택합니다. MinGW 를 선택해서 설치 했으므로 해당 Check 상자가 선택된 것을 확인하고 Next 를 누릅니다.

5. Class Information 을 정보를 입력합니다.

1) Class Name 은 GUI 응용프로그램을 구성하는 정보인 Form 을 생성할 때 같이 만들어지면서 Form 에 대응되는 Class 입니다. MainWindow 을 그대로 사용합니다.

2) Base class 는 어떤 형태의 응용프로그램을 만드냐에 따라 선택할 수 있습니다. 기본적인 Window 형태를 사용하므로 QMainWindow 를 선택합니다.

3) Header fileSource file 은 class name 을 지정해서 만들어질 내용이 어떤 File 에 저장될 지를 선택합니다. 기본값인 mainwindow.h 와 mainwindow.cpp 를 선택합니다.

4) Generate form 을 선택하면 QT Creator 가 사용하는 UI 설정을 사용할 수 있으며 해당 설정 File 이름은 Form file : 에서 지정할 수 있습니다. mainwindow.ui 를 그대로 사용합니다.

6. 별도의 Version Control 도구를 사용하지 않으므로 Project Management 에 있는 Add to version controlNone 으로 선택합니다.

7. 마지막으로 추가될 내용을 확인 후 Finish 를 선택합니다.

8. 만들어진 Project 에서 Edit / Forms - mainwindow.ui / Design 을 선택합니다.

9. QT Creator 가 구성하는 Forms 에 대해서 볼 수 있습니다. 이 곳을 Qt Designer 라고 불립니다.

Qt Designer 를 구성하는 요소들은 아래와 같습니다.

  1. 위젯 박스 (Widget Box) : 폼에 추가할 수 있는 위젯(컨트롤) 들을 보여줍니다.
  2. 폼 (Form) : 지정된 위젯들이 응용 프로그램의 어떤 부분에 위치하는지 지정하거나 추가/삭제 할 수 있습니다.
  3. 액션 에디터 (Action Editor) : 응용 프로그램이 메뉴 (Menu) 를 가지고 있다면 어떤 구조를 가지고 있을지 지정하고 편집하는 곳입니다.
  4. 시그널 & 슬롯 에디터 (Signal & Slot Editor) : 액센 에디터와 동일한 곳에 있지만 하단에 탭 (Tab) 으로 변경이 가능합니다. 폼에 있는 객체들 (위젯, 컨트롤) 을 Qt 의 시그널 & 슬롯 메커니즘 (Signal & Slot Mechanism) 을 사용해서 연결하여 동작하는 것을 설정하게 해줍니다.
  5. 오브젝트 인스펙터 (Object Inspector) : 현재 편집중인 폼 (Form)에 존재하는 모든 객체들을 계층별로 표시해줍니다.
  6. 프로퍼티 에디터 (Property Editor) : 폼에 있는 객체들의 속성 값들을 관리하는 곳입니다.

10. Qt Design이제 왼쪽 하단에 있는 ▶ 을 눌러서 Run 을 눌러 봅니다.

11. Build 후 MainWindow 가 Application 이 만들어진 후 실행되는 것을 볼 수 있습니다.

참고 문서


Trackback 0 Comment 4
  1. phg 2015.09.09 17:18 address edit & del reply

    안녕하세요 한가지 질문이 있는데요...얼마전부터 qt로 작업을 하고 있는데요...Kit를 선택하는게 의미가 뭔지 모르겠습니다.
    qt creator을 설치할때 qt전용의 온전한 컴파일러가 설치되는 것 아닌가요?
    아니면 설치할때 골랐던 kit에 해당하는 컴파일러(예를들어 MSVC)를 사용하는건가요?
    후자라면 qt프로그래밍을 할때 개발환경이 왜 MSVC가 아니고 qt creator만의 개발환경이 되는건가요...
    마지막으로 프로젝트 새로 만들 때 MSVC 2010, MSVC2012, MSVC2010 openGL, MSVC 2012 openGL 이 네개중에서 한개를 골라야만 하는데...이거는 왜 고르는 거죠?
    질문이 길어졌네요,,, 답변해주시면 고맙겠습니다^^

    • Favicon of https://cakel.tistory.com BlogIcon 카켈 2015.09.09 18:57 신고 address edit & del

      저도 정확히는 모르지만, 아는데로 답변은 드리는게 맞을거 같네요.

      Kit 를 선택한다는 것은 어떤 Compiler 로 Compile 된 QT Library
      를 쓸건지 선택하는 것입니다. 그리고 선택한 Library 를 이용해서
      사용자가 QT 를 이용해 작성한 Source 를 대상으로 QT Creator
      가 Compile 요청을 한다는 것입니다.

      MSVC 를 선택했다면 해당되는 Version 의 Visual Studio 가
      미리 설치 안되어 있으면 Compile 이 안 될 것입니다.
      대신 MinGW 인 경우는 Tools 의 MinGW 항목을 이 같이 설치하면
      추가 Compiler 설치 없이 잘 될 것입니다. (Open Source 를 활용하여
      만든 일종의 Bundle 입니다.)

      설치 프로그램은 선택된 Kit 에 따라 IDE 인 QT Creator 의
      Compiler 설정을 자동으로 설정 해줍니다. 환경 설정 등으로 인해
      Compiler 를 못 찾는 문제가 있다면 직접 Compiler 를 선택해줘야 하는
      불편함이 있습니다.

      참고로 QT Creator 안에 C++ Code 를 Compile 하는 자체
      Built-in Compiler 는 없습니다. 외부 Compiler (MinGW, MSVC) 와 연동이
      잘 되어 있어서 아마 온전하다고 이해하신거 같습니다.

      대신 Form Editor 를 이용해서 UI 를 그렸을 때 이를 C++ Code
      로 변환해주는 UIC (User Interface Compiler) 와 QT Macro 를
      일반 C++ Compiler 가 읽을 수 있게 변환해주는 MOC (Meta Object
      Compiler) 가 QT Creator 에 포함되며 Make Script 를 통해
      연동되는데, 이 둘은 지금 문의하신 Compiler 와 성격이 조금 다릅니다.

      C++ 코드를 Binary Object 로 만들어 주는 Compiler 는 기본적으로
      MinGW(GCC) 또는 MSVC 를 이용합니다. MSVC 2010 ... 으로 해서
      숫자가 다른 것은 해당 Compiler 의 Version 에 맞는 Library 를 사용해서
      QT Library 를 만들고 배포하기 때문에 그렇습니다.

      말씀 하신데로 MSVC 을 선택한 경우 QT Creator 만이 아니고, 아래 글처럼
      Visual Studio 에서도 QT Library 를 Import 해서 Compile/Link 해서 쓸수 있습니다.
      http://sacstory.tistory.com/entry/Q%E3%85%855-Qt5-%EC%84%A4%EC%B9%98-%EB%B0%8F-Visual-Studio-2013-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0

      설치 Kit 에 표시된 OpenGL 은 QT Library 와 OpenGL Library 간의 연동 여부를
      결정하는 걸로 보입니다. OpenGL 이 있는 걸 쓰면 Application
      의 OpenGL 연동이 유연해집니다. (e.g. OpenGL Library Version 선택)

  2. phg 2015.09.12 22:10 address edit & del reply

    오옷 엄청 빠른 답변 감사합니다~
    말씀하시부분 완전히 이해는 안되지만 궁금해 했던 것은 해결되었습니다
    요약하면 qt creator가 binary파일로 바꾸는 컴파일부분(exe파일 만드는 linker포함)만 기존의 컴파일러에게 요청을 한다는 뜻이군요. 코딩환경이 완전히 새로워서 그럴 것이라고는 생각도 못했네요^^;;
    qt공부에 도움되는 글들이 많네요. 감사합니다^^

    • Favicon of https://cakel.tistory.com BlogIcon 카켈 2015.09.13 14:23 신고 address edit & del

      제 생각과 동일하네요, 앞서 쓴 글들을 읽어 보시면 조금 더 이해하시는데 도움이 될거 같습니다.