25
업무에서 빠르게 활용하는 PyQt 임덕규

PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

  • Upload
    -

  • View
    6.769

  • Download
    11

Embed Size (px)

Citation preview

Page 1: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

업무에서빠르게 활용하는 PyQt

임덕규

Page 2: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

이 발표의 대상은?

• Python 의 문법을 갓 배운 새내기

• Python을 사용하고 있으나 GUI Toolkit으로 무엇을 사용하는게 좋은지 모르겠는 사람

• 여자

Page 3: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

PyQt를 사용하게 된 계기

• 당시로는 Python을 갖 배운 개발자 새내기였음

• 인류 역사상 획기적인 아이템이라 불리우는 마우스로 내가 만든 프로그램을 쓰다듬고 싶었음

• 그나마 C 로 개발하던 WinAPI32 의 인수 길이에 질려버림

• TkInter 는 모양이 이쁘지가 않았음

Page 4: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

PyQt를 선택한 이유

• 잘 정리되어 있는 엄청난 양의 문서

• 디자이너를 포함하고 있음

• 다른 OS에서도 큰 수정없이 재사용 할 수 있음

• 상업적 이용이 가능 (PyQt4 - LGPL, PyQt5 - GPL)

Page 5: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

발표에 앞서

Page 6: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

이 발표에서는

• PyQt 설치 및 주의점

• 언제나 그렇듯 첫 시작은 “안녕 세계” 만들기

• PyQt, 이것만 알면 만들 수 있다!

• 발표자의 강력한 부산 사투리 또는 양상국 말투 주의

Page 7: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

PyQt 설치 및 주의점• google에서 pyqt 검색 또는

• https://www.riverbankcomputing.com에서 다운로드 받을 수 있다.

• Windows 는 설치 파일 실행 한번으로 간단하게 설치 가능

• 우분투 리눅스에서는 apt-get을 이용하여 설치 가능

• 이상하게도 MAC은 이것저것 컴파일하는 일까지 발생

• PyQt5 부터는 Python3 만 지원

=

Page 8: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

PyQt5 주요 클래스

• PyQt5에서는 지난 버전인 4와 달리 Widget과 Gui가 분리되었습니다.

• QtCore - Qt에서 사용되는 상수 값들 외

• QtWidget - QtGui에서 분리되어 Widget만 모아져있음

• QtGui - QIcon, QPixmap, QFont 등 Widget이 아닌 그래픽 관련 모듈

Page 9: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기- 동영상 -

Page 10: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기ui 파일 다루기 - #1

uic 모듈의 loadUi() 메서드를 사용

• 장점 • ui 파일을 변환없이 바로 사용할 수 있다. • 변환 과정이 없으므로 작업속도가 빠르다.

• 단점 • 항상 ui 파일이 있어야 한다. • 에디터에서 메서드 자동완성 기능을 사용할 수 없다.

Page 11: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기ui 파일 다루기 - #2

pyuic5를 이용하여 ui 파일을 python 파일로 변환

• 장점 - 에디터에서 메서드 자동완성 지원 • 단점 - 디자인 변경시마다 ui 파일 변환과정이 귀찮다.

Page 12: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기ui 파일 다루기 - #3

그냥 디자이너 사용하지 않고 직접 코딩하기

• 장점 • 간단한거 만들때는 더 나

을 때가 있다. • 정확하게 위젯들을 설정

하는 ‘기분’이 든다. • 단점

• 규모가 커지는 어느 순간부터는 돌이킬 수 없다.

• 좌표 또는 레이아웃 잡는다고 시간 다 보낼 수 있다.

Page 13: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기

Page 14: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

Qt Designer로 작업하기

Page 15: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

시그널과 슬롯 사용에 대한 이해

시그널과 슬롯은?

커플이다!

Page 16: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

시그널과 슬롯 사용에 대한 이해

PushButton

clicked()

pressed()

released()

LED

turn_on()

toggled(bool)

turn_off()

trun(bool)

Page 17: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

시그널과 슬롯의 만남 주선하기Qt Designer에서

Page 18: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

시그널과 슬롯의 만남 주선하기직접 이어주기

해당 위젯 문서를 참고하여 슬롯 메서드를 만들어 주고 이어줌

Page 19: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

위젯 사용

Page 20: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

위젯 사용 - 구현

위젯 사용을 위한 구현 순서 • Qt 레퍼런스 페이지에서 해

당 위젯의 사용법 확인 • 요구하는 형식에 맞춰서 코드

작성

Page 21: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

정리하며..

Page 22: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

DataPort

Page 23: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

기상 현황판

Page 24: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

행복한 시그널 주고 받으시길 바랍니다.

Page 25: PyCon 2015 - 업무에서 빠르게 활용하는 PyQt

QnA