개발 · 프로그래밍

/

프로그래밍 언어

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

Qt는 GUI뿐만 아니라 네트워크, 데이터베이스, 멀티미디어, IPC 등 다양한 기능을 제공하여 Python으로 쉽고 빠르게 다양한 분야의 애플리케이션을 개발할 수 있는 강력한 프레임워크입니다. 본 강의를 통해 Qt 기초부터 다양한 예제를 통해 Python에서 Qt를 효과적으로 활용하는 방법을 배워보겠습니다.

19명 이 수강하고 있어요.

Thumbnail

입문자를 위해 준비한
[Python, Qt] 강의입니다.

이런 걸
배워요!

  • Qt의 방대한 API를 활용하여 Python으로 다양한 분야의 애플리케이션을 개발하는 방법을 심도 있게 학습할 수 있습니다.

  • Qt를 통해 Python으로 다양한 분야의 애플리케이션을 신속하고 효율적으로 개발하는 기법을 익힐 수 있습니다.

  • Qt를 이용해 Python에서 GUI를 구현할 수 있는 방법을 배울 수 있습니다.

Python에서 Qt 학습을 보다 쉽게 입문할 수 있도록 여러분을 위한
전문 강의를 제공합니다.

이 강의는 Qt와 Python을 활용해 다양한 GUI 애플리케이션을 개발할 수 있도록 체계적으로 구성되어 있으며, 실무에서 필수적인 다양한 기술들을 배울 수 있습니다.

  • 기본 GUI 구축: 기본적인 Qt 개발 환경 설정부터 시작하여, 간단한 GUI 애플리케이션을 직접 구현하는 방법을 배웁니다.

  • 핵심 기능 활용: Signal과 Slot을 통한 이벤트 처리, 다양한 리소스 관리와 다국어 지원, 데이터베이스 연동, 네트워크 통신 등 실무에서 요구되는 핵심 기능들을 다룹니다.

  • 고급 기술 습득: QPainter를 활용한 2D 그래픽, 크로마키 영상 처리, Custom Widget 제작 등 고급 애플리케이션 개발에 필요한 기술을 학습할 수 있습니다.

이런 분들께 추천해요

Qt를 이용한 GUI개발 (1)

Qt(PySide6)를 활용하면 Python으로 세련된 GUI를 손쉽게 구현할 수 있습니다.

방대한 API (2)

네트워크, 멀티미디어, IPC, 데이터베이스 등 다양한 분야에 걸친 방대한 API를 통해 고도화된 애플리케이션을 손쉽게 구현할 수 있습니다.

다양한 툴을 지원 (3)

Qt의 강력한 GUI, 다국어 지원, 리소스 관리 도구를 활용하면 손쉽게 수준 높은 애플리케이션을 구현할 수 있습니다.

수강 후에는

  • 데스크톱 애플리케이션: 데이터 시각화 도구, 비즈니스 소프트웨어 등에서 활용할 수 있는 GUI 애플리케이션 개발이 가능합니다.

  • 산업용 소프트웨어: 네트워크 및 데이터베이스와의 연동 기능을 통해 IoT 관리 시스템, 생산 관리 도구, 통신 애플리케이션 등에 응용할 수 있습니다.

  • 크로스플랫폼 애플리케이션: Qt의 크로스플랫폼 지원을 통해 Windows, macOS, Linux 등 다양한 환경에서 동작하는 설치 배포판을 제작할 수 있습니다.

이 강의의 특징 및 차별점

실무 중심의 실습 구성 (1)

이론과 실습을 균형 있게 배치하여 학습자가 직접 코딩하면서 Qt와 Python의 기능을 자연스럽게 익힐 수 있도록 설계되었습니다. 각 섹션에서 실무에서 자주 사용되는 예제와 응용을 다루며, 학습 후 실제 프로젝트에 바로 적용할 수 있습니다.

포괄적인 Qt 기능 학습 (2)

기본적인 GUI 개발부터 고급 기능인 Custom Widget, 네트워크, 다국어 지원, 데이터베이스 연동, 크로마키 영상 처리 등 폭넓은 Qt의 기능을 심도 있게 배울 수 있어 다양한 분야에 응용 가능한 기술을 익힐 수 있습니다.

다양한 응용 분야에 적합한 커리큘럼 (3)

데스크톱 애플리케이션, IoT, 산업용 소프트웨어, 크로스플랫폼 배포까지 아우르는 커리큘럼을 제공하여, Qt를 처음 접하는 초보자뿐만 아니라 고급 개발자까지 자신이 원하는 분야에 맞춰 학습할 수 있습니다.

모듈화된 학습 접근법 (4)

각 기능별로 섹션이 구분되어 있어, 필요한 부분을 선택적으로 학습할 수 있습니다. Signal과 Slot, Qt Designer, 리소스 시스템, 데이터 입출력 등 주요 기능을 개별적으로 탐구하며 필요에 따라 즉시 활용할 수 있습니다.

실전 개발과 유사한 환경 구축 (5)

Visual Studio Code와 Qt 개발 환경 설정부터 시작하여 배포판 제작까지 실제 개발 현장과 유사한 환경에서 학습할 수 있으며, 강의를 마치면 자신만의 GUI 애플리케이션을 완성하고 배포할 수 있는 실전 감각을 익히게 됩니다.

강의구성 📖 - 이런 내용을 배워요

섹션 1. 강의를 시작하며
본 강의에 앞서, 전체 학습 과정을 개괄하는 섹션입니다. 이 섹션에서는 강사 소개와 더불어 각 섹션별로 학습할 주요 내용을 요약하여 제공하므로, 여러분들이 강의의 전반적인 흐름을 파악할 수 있습니다.

섹션 2. 강의자료
이 섹션에서는 섹션 3부터 본격적으로 시작되는 강의에서 사용되는 모든 예제 소스코드 파일들이 압축된 파일로 제공되며 파일을 다운로드할 수 있습니다. 이 섹션은 수업의 일환이 아닌 자료 제공을 목적으로 제공되는 섹션입니다.

섹션 3. 개발 환경 구축
이번 섹션에서는 Qt를 활용한 Python 프로그래밍을 위한 개발 환경을 설정하는 방법을 심도 있게 탐구합니다. 또한, 소스 코드를 작성하기 위한 IDE로서 Visual Studio Code의 활용 방안도 살펴봅니다.

섹션 4. Qt 프로그래밍의 시작
Qt를 기반으로 한 Python의 간단한 GUI 프로그래밍을 배웁니다. 이를 통해 Python에서 Qt를 효과적으로 활용하는 기초를 다질 수 있습니다.

섹션 5. Signal and Slot
Signal과 Slot은 Qt의 핵심 이벤트 처리 메커니즘입니다. Signal은 특정 이벤트 발생을 나타내고, Slot은 이러한 이벤트에 대한 처리를 담당하는 함수입니다. 예를 들어, 버튼 클릭 시 발생하는 Signal과 그에 연결된 Slot 함수의 작동 원리를 배우게 됩니다.

섹션 6. Qt Resources
Qt Resource System은 애플리케이션에 필요한 다양한 리소스(이미지, 아이콘, 사운드 등)를 실행 파일에 통합하는 기능을 제공합니다. 이 시스템은 파일 경로 관리를 간소화하고, 보안성과 성능을 향상시켜 줍니다. 이번 섹션에서는 이 리소스 시스템의 활용법에 대해 학습합니다.

섹션 7. Qt Designer
Qt Designer는 Qt 애플리케이션의 사용자 인터페이스를 직관적으로 설계할 수 있는 도구입니다. 드래그 앤 드롭 방식으로 위젯을 배치하고 속성을 조정함으로써 UI 디자인의 효율성을 극대화합니다. 이 섹션에서는 Qt Designer를 통해 GUI 디자인 방법을 익힙니다.

섹션 8. Style Sheet을 이용한 GUI 프로그래밍
Qt Style Sheet는 UI 요소의 외관을 세밀하게 조정하는 데 사용되는 강력한 도구입니다. CSS와 유사한 문법을 통해 버튼, 텍스트 및 레이아웃의 스타일을 정의할 수 있습니다. 이번 섹션에서는 Qt Style Sheet의 활용 방법을 배웁니다.

섹션 9. 다국어 지원 어플리케이션 구현
Qt는 다국어 지원 애플리케이션을 손쉽게 개발할 수 있는 기능을 제공합니다. 이 섹션에서는 Qt의 다국어 지원 툴을 활용하여 다양한 언어를 지원하는 애플리케이션 개발 방법을 학습합니다.

섹션 11. QMainWindow
QMainWindow는 데스크탑 환경에서 구조화된 GUI를 구현하는 데 적합한 클래스입니다. 메뉴, 도구 모음, 메인 위젯 및 상태 표시줄 등 정형화된 GUI 요소를 효과적으로 관리하는 방법을 배우게 됩니다.

섹션 10. Layout
Layout은 Qt에서 위젯들을 효율적으로 배치하고, 화면 크기 변화에 따라 동적으로 조정하는 기능을 제공합니다. 이번 섹션에서는 Qt의 다양한 Layout 기능을 배웁니다.

섹션 12. Model / View
Qt의 Model/View 구조는 대량의 데이터를 다양한 형식으로 시각적으로 표현할 수 있는 강력한 기능을 제공합니다. 이번 섹션에서는 Qt에서 제공하는 Model과 View의 활용 방법을 익힙니다.

섹션 13. 파일 입출력 및 STREAM 처리
이번 섹션에서는 QFile을 통한 파일 입출력 방법과 대량 데이터를 효율적으로 처리할 수 있는 QDataStream 및 QTextStream의 사용법에 대해 알아봅니다.

섹션 14. QPainter를 이용한 2D Graphics
QPainter 클래스는 QWidget에서 2D 그래픽 요소를 그리는 데 사용됩니다. 도형, 선, 텍스트, 이미지를 표시하는 기술을 심층적으로 배웁니다.

섹션 15. QPainter 실전편 - 크로마키 영상 처리
크로마키 기법을 통해 특정 배경 이미지의 색상을 다른 이미지로 교체하는 과정에서 QPainter를 심도있게 배웁니다. 이를 통해 QPainter의 이해도를 높일 수 있습니다.

섹션 16. 타이머 구현
QTimer 클래스를 이용해 정해진 시간 간격으로 특정 함수를 호출하는 방법을 배우며, 이벤트 기반 프로그래밍의 실전 예제를 살펴봅니다.

섹션 17. Thread Programming
Qt의 스레드 관련 클래스들을 활용하여 스레드 프로그래밍을 용이하게 수행하는 방법을 배우고, 다중 스레드 환경에서의 재진입성(Re-Enterancy)을 만족하는 스레드 구현 방법을 익힙니다.

섹션 18. Custom Widget
기존 위젯으로는 표현할 수 없는 UI 요소를 구현하기 위해 Custom Widget을 제작하는 방법을 학습하고, 비정형 윈도우 구현에 대한 기술도 익힙니다.

섹션 19. 데이터베이스
Qt는 다양한 데이터베이스에 접근할 수 있는 통합 API를 제공합니다. 이 섹션에서는 Qt의 데이터베이스 API를 통해 MySQL, MS-SQL, Oracle, SQLite 등 다양한 데이터베이스를 다루는 방법을 배웁니다.

섹션 20. XML
Qt의 XML 모듈을 통해 XML 데이터를 손쉽게 처리할 수 있는 방법을 학습합니다. SAX 및 DOM 방식을 활용한 XML 데이터 핸들링 기법을 익힙니다.

섹션 21. JSON
Qt의 JSON 모듈을 사용하여 JSON 데이터를 효율적으로 처리하는 방법을 배우며, JSON 포맷의 이해도를 높입니다.

섹션 22. Printer Support
프린터에 텍스트나 이미지를 출력하는 방법을 배우며, 실제 프린터와의 연동을 통해 출력 애플리케이션 구현 기술을 익힙니다.

섹션 23. Network
Qt Network 모듈을 활용하여 TCP/IP 기반의 네트워크 애플리케이션을 쉽게 개발하는 방법을 배웁니다. TCP 및 UDP 프로토콜을 이용한 실전 사례를 다룹니다.

섹션 24. 개발한 SW의 배포를 위한 설치 배포판 제작
이번 섹션에서는 Python 소스코드를 실행 파일로 변환하는 방법과, Qt Install Framework를 활용하여 다양한 플랫폼에서의 설치 파일 제작 과정을 심도 있게 학습합니다.

이 강의만의 핵심 장점

실전까지 생각한 강의

실전 능력까지 향상시킬 수 있도록 강의를 구성하였습니다. 모든 섹션별 이론 학습 후에는 실전 예제를 강의를 따라 직접 구현해가며 배울 수 있는 수업이 준비되어 실무 능력을 높일 수 있습니다.

생생한 라이브 코딩으로 집중 Up

지식공유자의 모습을 강의 화면에 함께 담았습니다. 생생한 라이브 코딩과 함께 진행되는 수업을 통해 마치 오프라인 수업을 듣는 느낌으로 언제 어디서나 학습해 보세요.

궁금한 점이 있나요?

질문 1: Qt와 Python을 함께 사용해야 하는 이유는 무엇인가요?

답변: Qt는 강력한 GUI 툴킷으로, 다양한 기능과 도구를 제공하여 직관적이고 세련된 사용자 인터페이스를 구축하는 데 최적입니다. Python은 배우기 쉽고 생산성이 높은 언어로, Qt와 결합하면 개발 속도가 빠르면서도 강력한 애플리케이션을 만들 수 있습니다. 즉, Qt가 제공하는 다양한 기능을 Python의 간결함과 결합해 유연하고 강력한 프로그램을 개발할 수 있는 최적의 조합인 거죠!

질문 2: 이 강의는 어떤 배경 지식이 필요한가요?

답변: 기본적인 Python 프로그래밍 지식만 있으면 충분합니다. GUI 프로그래밍 경험이 없어도 걱정하지 마세요! 강의는 기초부터 차근차근 설명하므로, 중간에 어려운 부분이 있어도 천천히 따라가면 됩니다. 마치 요리를 처음 배우는 것처럼, 재료를 준비하고 조리법을 익히며 맛있는 결과물을 만들 수 있는 과정을 함께 할 거예요.

질문 3: 강의 후에는 어떤 프로젝트를 만들어볼 수 있을까요?

답변: 강의를 마치고 나면 개인화된 노트 앱이나 데이터 시각화 도구, 심지어 IoT 디바이스의 제어 프로그램까지 만들어볼 수 있습니다! 상상력을 발휘해 보세요. 자신의 필요에 맞게 다양한 기능을 추가하고 다국어 지원도 구현해보면, 나만의 멋진 애플리케이션을 갖게 될 거예요. 게다가 친구에게 자랑할 수 있는 ‘나만의 작품’도 만들 수 있죠!

질문 4: Qt를 처음 접하는데 어려운 부분이 있을까요?

답변: 처음에는 다소 복잡해 보일 수 있지만, 제가 여러분과 함께 할 것이니 걱정하지 마세요! Qt의 구조와 용어가 낯설 수 있지만, 저와 함께 천천히 각 부분을 분해해서 이해할 수 있도록 도와드릴 겁니다. 마치 퍼즐을 맞추듯이, 각 요소를 조합하여 완벽한 그림을 만들어 나갈 수 있도록 안내해 드리겠습니다. 어려운 부분도 함께 극복해 나가면, 나중에는 여러분이 Qt 전문가가 되어 있을 거예요!

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): 본 강의는 Windows 운영 체제에서 진행되며, macOS, Linux, Ubuntu 등 다양한 환경에서도 사용 가능합니다. 그러나 Windows를 사용하시기를 권장드립니다.


  • 개발 환경 구축에 필요한 소프트웨어는 수업 중에 함께 설치하는 시간을 마련하였으니, 컴퓨터와 운영 체제만 준비해 주시면 됩니다.

학습 자료

  • 수강 후 학습 참고 자료로 섹션2에서 이 강의 모든 예제 소스코드를 다운로드 받으실 수 있습니다.

질문하기

  • 수업 중 이해가 되지 않는 부분이나 궁금한 점이 생기면 주저하지 말고 질문해 주세요. 함께 논의하고 해결하는 과정이 학습에 큰 도움이 됩니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Qt를 이용해 Python으로 GUI를 구현하고 싶으신 분

  • 다양한 분야의 API를 쉽고 빠르게 Python으로 구현하고 싶으신 분

선수 지식,
필요할까요?

  • 기본 Python 프로그래밍 지식: Python의 기본 문법과 데이터 구조(리스트, 딕셔너리 등), 함수 정의 및 호출에 대한 이해가 필요합니다. 이러한 기초 지식이 있으면 Qt를 활용한 프로그래밍에 쉽게 접근할 수 있습니다.

지식공유자 소개 ✒️


근무경력
: 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 )

커리큘럼

전체

93개 ∙ (13시간 52분)

수업 자료

가 제공되는 강의입니다.

  • 예제소스코드 (모든 섹션의 예제 소스코드)

강의 게시일: 
마지막 업데이트일: 

수강평

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