개발 · 프로그래밍

/

데스크톱 앱 개발

[입문] Qt 6 프로그래밍 1편

Qt를 이용하면 다양한 운영체제에서 호환되는 SW를 개발 할 수 있습니다. 즉 한번 Qt로 개발한 소스코드로 다양한 플랫폼에서 동작하는 SW를 개발할 수 있습니다.

(4.4) 수강평 30개

수강생 354명

Thumbnail

입문자를 위해 준비한
[데스크톱 앱 개발, 임베디드 · IoT] 강의입니다.

이런 걸
배워요!

  • 데스크탑, 모바일, 임베디드등 다양한 플랫폼에서 동작하는 SW를 Qt를 이용해 개발하는 방법을 배웁니다.

  • MS Windows, Linux, MacOS 에서 Qt를 이용해 SW를 개발하는 방법을 배웁니다.

  • 모바일인 Android 플랫폼에서 App을 Qt를 이용해 개발하는 방법에 대해서 배웁니다.

Qt Programming
One framework, one codebase, any platform.

Qt가 무엇인가요?

Qt는 어플리케이션 프레임워크로, Qt를 이용해 개발한 SWMS Windows, MacOS, Android, iOS, Embedded Linux, QNX, 등에서 모두 호환(지원)됩니다. 그러므로 운영체제 별 호환되는 어플리케이션을 따로 개발하지 않아도 됩니다.

그리고 Qt 는 단순히 GUI를 위한 개발 프레임워크가 아닙니다. Qt는 다양한 산업 분야에서 필요로 하는 방대한 API를 제공합니다.

한번 Qt로 개발된 SW는 각 운영체제에 이식할 수 있습니다. 예를 들어 Android App을 개발하기 위해서 JAVA Android SDK, NDK 를 사용해야 하지만 Qt 가 사용하는 C++을 이용해 개발하면 Android 에서 동작하는 App 을 개발할 수 있습니다.

 

Qt로 한번 개발한 어플리케이션은 Desktop 운영체제, 모바일 운영체제 Embedded 운영체제에서 모두 이식할 수 있습니다. 따라서 개발 시 소요되는 인건비, 시간을 최소화 할 수 있는 개발 프레임워크 이며 C++을 사용합니다. 심지어 개발 프레임워크에는 다국어 지원이 가능한 툴과 설치 배포판(설치 파일)을 만들 수 있는 개발 툴도 포함되어 있습니다.

Qt로 무엇을 할 수 있나요?

다양한 산업분야에서도 Qt를 이용해 SW를 개발할 수 있습니다. 유수의 수만은 자동차 OEM에서 Qt를 사용하고 있습니다. 그리고 TV, 가전, 건설 등 수 많은 분야에서 Qt를 이용해 SW를 개발하고 있습니다

실시간 OS인 FreeRTOS 운영체제와 같은 MCU 수준에서도 동작하는 운영체제에서도 Qt로 개발한 SW포팅이 가능합니다.

 

Qt, 어떻게 사용하나요?

Qt는 개발 IDE 툴로 Qt Creator IDE 툴을 제공합니다. 하지만 Visual Studio IDE툴에 익숙한 개발자들을 위해서 Qt Visual Studio Add-in 을 설치해 Visual Studio IDE툴에서 Qt 를 이용해 SW를 개발할 수 있습니다

이런걸 배워요

Qt를 이용해 개발하면 다양한 운영체제와 호환이 되므로 시간과 비용을 최대한 줄일 수 있으며 이 교육 과정을 통해 여러분은 Qt를 이용해 SW를 개발할 수 있는 방법에 대해서 배울 수 있습니다.

따라서 이 과정을 수강하면 다양한 산업 분야의 SW를 개발할 수 있는 역량을 향상 시킬 수 있으며 Qt 중급자 이상의 역량을 보유 할 수 있습니다

  • Qt에서 제공하는 방대한 API 학습
  • 멀티 플랫폼에서 동일하게 동작하는 응용 소프트웨어를 개발하는 방법
  • Qt에서 제공하는 툴의 사용 방법 학습

 

이런 분에게 추천해요

  • 다양한 플랫폼과 호환되는 SW를 개발해야 하는 분
  • 다양한 산업 분야에서 필요로 하는 SW를 Qt를 이용해 개발하고자 하는 분

 


강의구성 📖

섹션 1. Qt 6 소개와 특징
Qt 가 어떤 특징과 장점이 있는지 살펴봅니다. 이번 섹션에서는 본격적인 학습을 하기 전에 Qt에 대해서 전반적인 내용을 살펴봅니다. 

섹션 2. Qt 6 Framework 설치 
Qt는 MS Windows, Linux, macOS, Android, iOS, QNX, FreeRTOS 등 다양한 플랫폼에서 동작하는 어플리케이션을 개발할 수 있는 Cross Platform을 지원합니다. 이번 섹션에서는 다양한 플랫폼에서 Qt를 설치하는 방법과 Qt의 버전별 차이점을 알아보는 섹션입니다. 

섹션 3. Qt 프로그래밍의 시작 
Qt를 이용해 예제 어플리케이션을 작성하는 방법에 대해서 배웁니다. 어플리케이션으로 종류로 Console 기반 어플리케이션(GUI가 필요하지 않는 어플리케이션), GUI 기반의 어플리케이션을 개발하는 방법에 대해서 학습합니다. 그리고 Qt에서는 Designer툴을 제공합니다. Designer 툴을 이용하면 코딩하지 않고도 GUI Widget들을 쉽게 사용 및 화면상에 배치할 수 있습니다. 
따라서 이번 섹션에서는 Qt를 이용해 간단한 어플리케이션을 작성하는 방법과 Designer 툴을 이용하는 방법에 대해서 배웁니다. 

섹션 4. Signal 과 Slot 
Signal 과 Slot 은 Qt에서 사용하는 이벤트입니다. Signal은 이벤트이고 Slot은 이벤트가 발생하면 처리를 담당하는 함수를 말합니다. 예를 들어 어떤 버튼이 있는데, 이 버튼을 Click 했을 때, Click 이벤트가 발생했다고 합니다. 이것을 Signal이라고 합니다. 즉 버튼 Click Signal 이 발생했다고 합니다. 그리고 버튼인 클릭되면 어떤 함수가 실행되게끔 하는 Slot 함수라고 합니다. 이 섹션에서는 Signal 과 Slot의 사용 방법에 대해서 배웁니다. 

섹션 5. GUI 프로그래밍, Widgets 
Button, Combo Box, Check Box 등의 요소를 Qt 에서는 Widget이라고 합니다. 모든 Widget들은 QWidget을 상속받아 구현됩니다. 예를 들어 버튼과 같은 기능을 제공하는 GUI로 QPushButton이 있습니다. 이 클래스 또한 QWidget을 상속받아 구현된 클래스입니다. 이번 섹션에서는 Qt에서 제공하는 Widget들 중에서 자주 사용하는 Widget을 중심으로 배웁니다. 

섹션 6. GUI 프로그래밍, Layouts 
Layout이란 Qt에서 제공하는 Widget 들을 화면에 배치하고 동적으로 크기가 변경되면 Widget들의 크기도 동적으로(자동으로) 변경되게 하기 위해서 Qt 에서는 Layout을 제공합니다. 이번 섹션에서는 Qt에서 제공하는 Layout에 대해서 배웁니다.

섹션 7. GUI 프로그래밍, QMainWindow 
QMainWindow는 데스크탑에서 사용하는 윈도우 형태의 GUI를 구현할 때 사용합니다. 예를 들어, 메뉴, Tool Bar, Main Widget 영역, 좌우 배치 영역, 하단의 Status Bar 와 같이 정형화된 형태의 GUI를 구현할 때 유용하게 사용할 수 있는 QMainWindow에 대해서 배웁니다.


섹션 8. 기본 데이터 타입과 유용한 타입들

Qt에서 제공하는 타입과 유용한 타입 클래스를 배웁니다. 예를 들어 QString은 문자열을 저장하는데 사용할 수 있는 타입 클래스입니다. 이와 같이 Qt에서 제공하는 타입 중 유용하고 자주 사용할 만한 타입과 타입 클래스들을 배웁니다. 

섹션 9. Container Classes
Container 란 Template을 말합니다. Qt에서는 Container로써 QList, QHash 등 유용하게 사용할 수 있는 다양한 Container를 제공합니다. 이번 섹션에서는 Qt에서 주로 사용하는 Container를 배웁니다. 그리고 예제를 통해서 더 자세히 Container Class 들을 배웁니다.

섹션 10. Model / View 
많은 양의 데이터를 표 또는 트리 등 다양한 형태로 GUI상에 보여 줄 수 있습니다. Qt에서는 이와 같은 기능을 쉽게 GUI로 구현할 수 있도록 Model 과 View 라는 개념을 사용합니다. 이번 섹션에서는 Qt에서 제공하는 Model 과 View를 배웁니다.

섹션 11. STREAM 
많은 양의 데이터를 처리하다 보면 Blocking 이 발생할 수 있습니다. 예를 들어 약 100MB 파일을 읽어 들일 때 순간 어플리케이션이 Blocking 될 수 있습니다. 따라서 Qt 에서는 이와 같은 문제를 해결하고 대량의 데이터를 좀더 쉽게 접근하기 위해서 STREAM을 제공합니다. 이번 섹션에서는 Qt에서 제공하는 QDataStream과 QTextStream을 사용하는 방법에 대해서 배웁니다.

섹션 12. 파일 입출력
Qt 제공하는 Class들을 이용해 파일을 핸들링 할 수 있는 방법에 대해서 배웁니다. 그리고 Qt에서는 파일을 핸들링 하기 위에서 QFile을 사용하는데 이 클래스에서 파일로부터 데이터를 READ 또는 WRITE할때 STEAM을 사용할 수 있습니다. 따라서 이번 섹션에서는 QFile 과 STREAM을 이용해 파일을 핸들링 할 수 있는 방법에 대해서 배웁니다. 

 

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 다양한 플랫폼과 호환되는 SW를 개발해야 하는 분과 다양한 산업분야에서 필요로 하는 SW를 개발하려는 분

  • 자동차, 의료, 멀티미디어, 네트워크등 다양한 산업분야에서 SW를 개발할 수 있습니다.

선수 지식,
필요할까요?

  • C++ 언어기초

지식공유자 소개 ✒️


근무경력
: Embedded 분야 Senior software developer
LG전자, VS사업부 IVI선행플랫폼/모듈개발
SW마에스트로, SW 멘토

강의경력
삼성전자, Qt & QML 강의
LG전자, Qt & QML 분야 사내 강사
한컴아카데미 Qt 강의 출강
다수의 IT기업 Qt 강의 출강


저서
Qt 프로그래밍
Qt Quick 프로그래밍
Qt5 프로그래밍 가이드
MeeGo 프로그래밍 완벽 가이드
Qt 실전 프로그래밍

SW커뮤니티 운영
Qt 개발자 커뮤니티 운영자 ( www.qt-dev.com )

커리큘럼

전체

35개 ∙ (8시간 48분)

수업 자료

가 제공되는 강의입니다.

  • 플랫폼별 Qt 6 Framework 설치

    14:00

강의 게시일: 2021년 05월 20일
마지막 업데이트일: 2024년 09월 02일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!