SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
업무에서

빠르게 활용하는 

PyQt
임덕규
이 발표의 대상은?
• Python 의 문법을 갓 배운 새내기
• Python을 사용하고 있으나 GUI Toolkit으로 무엇을 사용
하는게 좋은지 모르겠는 사람
• 여자
PyQt를 사용하게 된 계기
• 당시로는 Python을 갖 배운 개발자
새내기였음
• 인류 역사상 획기적인 아이템이라
불리우는 마우스로 내가 만든 프로
그램을 쓰다듬고 싶었음
• 그나마 C 로 개발하던 WinAPI32 의
인수 길이에 질려버림
• TkInter 는 모양이 이쁘지가 않았음
PyQt를 선택한 이유
• 잘 정리되어 있는 엄청난 양의 문서
• 디자이너를 포함하고 있음
• 다른 OS에서도 큰 수정없이 재사용 할 수 있음
• 상업적 이용이 가능 (PyQt4 - LGPL, PyQt5 - GPL)
발표에 앞서
이 발표에서는
• PyQt 설치 및 주의점
• 언제나 그렇듯 첫 시작은 “안녕 세계” 만들기
• PyQt, 이것만 알면 만들 수 있다!
• 발표자의 강력한 부산 사투리 또는 양상국 말투 주의
PyQt 설치 및 주의점
• google에서 pyqt 검색 또는
• https://www.riverbankcomputing.com


에서 다운로드 받을 수 있다.
• Windows 는 설치 파일 실행 한번으로
간단하게 설치 가능
• 우분투 리눅스에서는 apt-get을 이용하
여 설치 가능
• 이상하게도 MAC은 이것저것 컴파일하
는 일까지 발생
• PyQt5 부터는 Python3 만 지원
=
PyQt5 주요 클래스
• PyQt5에서는 지난 버전인 4와 달리 Widget과 Gui가 분
리되었습니다.
• QtCore - Qt에서 사용되는 상수 값들 외
• QtWidget - QtGui에서 분리되어 Widget만 모아져있음
• QtGui - QIcon, QPixmap, QFont 등 Widget이 아닌 그
래픽 관련 모듈
Qt Designer로 작업하기

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

ui 파일 다루기 - #1
uic 모듈의 loadUi() 메서드를 사용
• 장점
• ui 파일을 변환없이 바로 사용할 수 있다.
• 변환 과정이 없으므로 작업속도가 빠르다.
• 단점
• 항상 ui 파일이 있어야 한다.
• 에디터에서 메서드 자동완성 기능을 사용할 수 없다.
Qt Designer로 작업하기

ui 파일 다루기 - #2
pyuic5를 이용하여 ui 파일을 python 파일로 변환
• 장점 - 에디터에서 메서드 자동완성 지원
• 단점 - 디자인 변경시마다 ui 파일 변환과정이 귀찮다.
Qt Designer로 작업하기

ui 파일 다루기 - #3
그냥 디자이너 사용하지 않고 직접 코딩하기
• 장점
• 간단한거 만들때는 더 나
을 때가 있다.
• 정확하게 위젯들을 설정
하는 ‘기분’이 든다.
• 단점
• 규모가 커지는 어느 순간
부터는 돌이킬 수 없다.
• 좌표 또는 레이아웃 잡는
다고 시간 다 보낼 수 있
다.
Qt Designer로 작업하기
Qt Designer로 작업하기
시그널과 슬롯 사용에 대한 이해
시그널과 슬롯은?
커플이다!
시그널과 슬롯 사용에 대한 이해
PushButton
clicked()
pressed()
released()
LED
turn_on()
toggled(bool)
turn_off()
trun(bool)
시그널과 슬롯의 만남 주선하기

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

직접 이어주기
해당 위젯 문서를 참고하여 슬롯 메서드를 만들어 주고 이어줌
위젯 사용
위젯 사용 - 구현
위젯 사용을 위한 구현 순서
• Qt 레퍼런스 페이지에서 해
당 위젯의 사용법 확인
• 요구하는 형식에 맞춰서 코드
작성
정리하며..
DataPort
기상 현황판
행복한 시그널 

주고 받으시길 바랍니다.
QnA

Weitere ähnliche Inhalte

Was ist angesagt?

GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기
Lee Geonhee
 

Was ist angesagt? (20)

Git로 협업하기
Git로 협업하기Git로 협업하기
Git로 협업하기
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub초보자를 위한 Git & GitHub
초보자를 위한 Git & GitHub
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?Github? linux? 이건 뭐지?
Github? linux? 이건 뭐지?
 
디자이너 버전관리
디자이너 버전관리디자이너 버전관리
디자이너 버전관리
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)Git이란 (Git 소개 및 기초 이론)
Git이란 (Git 소개 및 기초 이론)
 
GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기GitHub로 프로젝트 운영하기
GitHub로 프로젝트 운영하기
 
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
Grunt
GruntGrunt
Grunt
 
Grunt.js Review
Grunt.js ReviewGrunt.js Review
Grunt.js Review
 
디자이너를위한Git #1/2
디자이너를위한Git #1/2디자이너를위한Git #1/2
디자이너를위한Git #1/2
 
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
네이버 오픈소스 세미나 - 나의코드에서 모두의 코드로 UNIST 이한
 
2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리2020년 4월 18일 개발 이야기 정리
2020년 4월 18일 개발 이야기 정리
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
 

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

윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
 
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)
Sang Don Kim
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 

Ähnlich wie PyCon 2015 - 업무에서 빠르게 활용하는 PyQt (20)

Dev Rookie 파이썬 GUI.pptx
Dev Rookie 파이썬 GUI.pptxDev Rookie 파이썬 GUI.pptx
Dev Rookie 파이썬 GUI.pptx
 
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdfInjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
 
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
경희대 해커 기술 세미나 - Git hub으로 학교 팀프로젝트 하기(조성수)
 
2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
SoundHub 프로젝트 발표 자료
SoundHub 프로젝트 발표 자료SoundHub 프로젝트 발표 자료
SoundHub 프로젝트 발표 자료
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁300초만에 알아가는 Git 관련 꿀팁
300초만에 알아가는 Git 관련 꿀팁
 
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]python을 azure에서 사용하는법(배권한)
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
Neovim으로 생산성 퀀텀점프하기 by 이재열
Neovim으로 생산성 퀀텀점프하기 by 이재열Neovim으로 생산성 퀀텀점프하기 by 이재열
Neovim으로 생산성 퀀텀점프하기 by 이재열
 
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
Agile prototyping intro v.1.5
Agile prototyping intro v.1.5Agile prototyping intro v.1.5
Agile prototyping intro v.1.5
 
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
 
2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기
 
pyOpenCL 입문
pyOpenCL 입문pyOpenCL 입문
pyOpenCL 입문
 
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장PyQGIS와 PyQt를 이용한 QGIS 기능 확장
PyQGIS와 PyQt를 이용한 QGIS 기능 확장
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
Github + Heroku + Circle CI 를 이용한 Django Application 배포 자동화
 

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

  • 2. 이 발표의 대상은? • Python 의 문법을 갓 배운 새내기 • Python을 사용하고 있으나 GUI Toolkit으로 무엇을 사용 하는게 좋은지 모르겠는 사람 • 여자
  • 3. PyQt를 사용하게 된 계기 • 당시로는 Python을 갖 배운 개발자 새내기였음 • 인류 역사상 획기적인 아이템이라 불리우는 마우스로 내가 만든 프로 그램을 쓰다듬고 싶었음 • 그나마 C 로 개발하던 WinAPI32 의 인수 길이에 질려버림 • TkInter 는 모양이 이쁘지가 않았음
  • 4. PyQt를 선택한 이유 • 잘 정리되어 있는 엄청난 양의 문서 • 디자이너를 포함하고 있음 • 다른 OS에서도 큰 수정없이 재사용 할 수 있음 • 상업적 이용이 가능 (PyQt4 - LGPL, PyQt5 - GPL)
  • 6. 이 발표에서는 • PyQt 설치 및 주의점 • 언제나 그렇듯 첫 시작은 “안녕 세계” 만들기 • PyQt, 이것만 알면 만들 수 있다! • 발표자의 강력한 부산 사투리 또는 양상국 말투 주의
  • 7. PyQt 설치 및 주의점 • google에서 pyqt 검색 또는 • https://www.riverbankcomputing.com 
 에서 다운로드 받을 수 있다. • Windows 는 설치 파일 실행 한번으로 간단하게 설치 가능 • 우분투 리눅스에서는 apt-get을 이용하 여 설치 가능 • 이상하게도 MAC은 이것저것 컴파일하 는 일까지 발생 • PyQt5 부터는 Python3 만 지원 =
  • 8. PyQt5 주요 클래스 • PyQt5에서는 지난 버전인 4와 달리 Widget과 Gui가 분 리되었습니다. • QtCore - Qt에서 사용되는 상수 값들 외 • QtWidget - QtGui에서 분리되어 Widget만 모아져있음 • QtGui - QIcon, QPixmap, QFont 등 Widget이 아닌 그 래픽 관련 모듈
  • 10. Qt Designer로 작업하기
 ui 파일 다루기 - #1 uic 모듈의 loadUi() 메서드를 사용 • 장점 • ui 파일을 변환없이 바로 사용할 수 있다. • 변환 과정이 없으므로 작업속도가 빠르다. • 단점 • 항상 ui 파일이 있어야 한다. • 에디터에서 메서드 자동완성 기능을 사용할 수 없다.
  • 11. Qt Designer로 작업하기
 ui 파일 다루기 - #2 pyuic5를 이용하여 ui 파일을 python 파일로 변환 • 장점 - 에디터에서 메서드 자동완성 지원 • 단점 - 디자인 변경시마다 ui 파일 변환과정이 귀찮다.
  • 12. Qt Designer로 작업하기
 ui 파일 다루기 - #3 그냥 디자이너 사용하지 않고 직접 코딩하기 • 장점 • 간단한거 만들때는 더 나 을 때가 있다. • 정확하게 위젯들을 설정 하는 ‘기분’이 든다. • 단점 • 규모가 커지는 어느 순간 부터는 돌이킬 수 없다. • 좌표 또는 레이아웃 잡는 다고 시간 다 보낼 수 있 다.
  • 15. 시그널과 슬롯 사용에 대한 이해 시그널과 슬롯은? 커플이다!
  • 16. 시그널과 슬롯 사용에 대한 이해 PushButton clicked() pressed() released() LED turn_on() toggled(bool) turn_off() trun(bool)
  • 17. 시그널과 슬롯의 만남 주선하기
 Qt Designer에서
  • 18. 시그널과 슬롯의 만남 주선하기
 직접 이어주기 해당 위젯 문서를 참고하여 슬롯 메서드를 만들어 주고 이어줌
  • 20. 위젯 사용 - 구현 위젯 사용을 위한 구현 순서 • Qt 레퍼런스 페이지에서 해 당 위젯의 사용법 확인 • 요구하는 형식에 맞춰서 코드 작성
  • 24. 행복한 시그널 
 주고 받으시길 바랍니다.
  • 25. QnA