Top

파이썬 GUI 프로그래밍 쿡북 3/e [Tkinter, PyQt5를 활용한 반응형 사용자 인터페이스 개발]

  • 원서명Python GUI Programming Cookbook: Develop functional and responsive user interfaces with tkinter and PyQt5, 3rd Edition (ISBN 9781838827540)
  • 지은이부르크하르트 메이어(Burkhard Meier)
  • 옮긴이김동호
  • ISBN : 9791161755717
  • 35,000원
  • 2021년 09월 30일 펴냄
  • 페이퍼백 | 500쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 프로그래밍 언어

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/python-gui-3e)

요약

파이썬 3를 사용해 GUI 프로그래밍 방법을 단계별로 설명한다. 2판의 레시피를 개선해 해당 라이브러리가 왜 필요하고, 어떻게 사용하는지 다양한 분야의 새로운 개념을 쉽게 이해할 수 있도록 설명한다. GUI 관련 기술뿐만 아니라 네트워크, 데이터베이스, 객체지향적 사고에 이르기까지 단계별로 배울 수 있도록 예제를 준비해 언어 자체를 배우는 입문용으로도 적당하다.
3판에서는 좀 더 강력하고 전문적인 PyQT에 대한 설명이 새롭게 추가됐다. 강력하고 바로 사용할 수 있는 수많은 위젯과 미려한 GUI로 좀 더 전문적인 애플리케이션을 개발하려는 독자에게 유용하다.

이 책에서 다루는 내용

◆ 파이썬 내장 tkinter 모듈로 GUI 생성
◆ 레이아웃 관리자로 GUI 위젯을 정렬해 GUI 커스터마이징
◆ 파이썬을 사용한 일반적인 폭포수 스타일에서 OOP 스타일로의 발전
◆ 무료 Matplotlib 파이썬 모듈을 사용한 차트 개발
◆ 네트워크 환경에서 스레딩을 사용한 반응형 GUI 만들기
◆ GUI에서 MySQL 데이터베이스에 연결하는 방법
◆ 단위 테스트 생성과 GUI 국제화 방법의 이해
◆ PyQt5를 사용해 GUI 개발 세계 탐험

이 책의 대상 독자

GUI를 개발하려는 프로그래머를 대상으로 한다. 파이썬 프로그래밍 언어를 사용해 아름답고 기능적이며 강력한 GUI를 개발할 수 있는 것에 놀랄 수 있다. 파이썬은 훌륭하고 직관적인 프로그래밍 언어로 매우 배우기 쉽다.

이 책의 구성

1장, GUI 폼 만들기 및 위젯 추가하기: 파이썬에서 첫 번째 GUI를 개발하는 방법을 설명한다. 실행 중인 GUI 애플리케이션을 빌드하는 데 필요한 최소 코드부터 시작한다. 그런 다음 각 레시피는 GUI에 여러 위젯을 추가한다.
2장, 레이아웃 관리: 파이썬 GUI를 만들기 위해 위젯을 정렬하는 방법을 설명한다. 그리드 레이아웃 관리자는 사용할 tkinter에 내장된 중요한 레이아웃 도구 중 하나다.
3장, 사용자 정의 룩 앤드 필: 좋은 룩 앤드 필의 GUI를 만드는 몇 가지 예를 보여준다. 실용적인 수준에서 레시피에서 만든 Help About 메뉴 항목에 기능을 추가한다.
4장, 데이터 및 클래스: GUI에 표시되는 데이터를 저장하는 방법을 설명한다. 파이썬의 내장 기능을 확장하기 위해 객체지향 프로그래밍OOP을 사용할 것이다.
5장, Matplotlib 차트: 시각적으로 데이터를 표현하는 아름다운 차트를 만드는 방법을 설명한다.
6장, 스레드와 네트워킹: 스레드, 대기열과 네트워크 연결을 사용해 파이썬 GUI의 기능을 확장하는 방법을 설명한다.
7장, GUI를 통해 MySQL 데이터베이스에 데이터 저장하기: MySQL 데이터베이스 서버에 연결하는 방법을 보여준다.
8장, 국제화 및 테스트: 레이블, 버튼, 탭 및 기타 위젯을 다른 언어로 표시해 GUI를 국제화하는 방법을 설명한다.
9장, wxPython 라이브러리로 GUI 확장하기: 현재 파이썬과 함께 제공되지 않는 다른 파이썬 GUI 툴킷을 소개한다. wxPython이라고 하며 파이썬 3에서 잘 동작하도록 디자인된 피닉스 버전의 wxPython을 사용한다.
10장, PyQt5로 GUI 만들기: 멋진 PyQt5 GUI 프로그래밍 프레임워크를 사용하는 방법을 보여준다. 테슬라는 이를 사용해 GUI 소프트웨어를 구축하며, 이 장에서는 C ++를 기반으로 구축된 Qt5 와 파이썬 바인딩을 사용해 드래그 앤 드롭 IDE GUI 개발의 멋진 세계를 살펴본다.
11장, 베스트 프랙티스: GUI를 효율적으로 작성하고 유지보수 가능하고 확장 가능한 GUI를 유지하는 데 도움이 되는 다양한 베스트 프랙티스를 살펴본다.

저자/역자 소개

지은이의 말

3판에서는 파이썬 프로그래밍 언어를 사용해 아름다운 그래픽 사용자 인터페이스(GUI) 세계를 살펴본다. 최신 버전의 파이썬 3를 사용하며 파이써닉하지 않은 오래된 OpenGL 라이브러리를 제외하고는 첫 번째, 두 번째 버전의 모든 레시피가 포함돼 있다.
3판에는 완전히 새로운 장을 추가했으며, 스타일을 극적으로 변경해 더 많은 레시피를 제공한다. 이를 통해 실제 프로그래밍 상황에 레시피를 더 쉽게 적용해 테스트하고 작동하는 솔루션을 제공할 수 있기를 바란다.
이 책은 프로그래밍 쿡북이다. 모든 장은 자체적으로 구성된 특정 프로그래밍 솔루션을 설명한다. 간단하게 시작해 여러 단계를 거쳐 파이썬 3로 작성된 애플리케이션애플리케이션을 만든다. 각 레시피는 이 애플리케이션의 구축을 확장한다. 이 과정에서 네트워크, 대기열, 데이터베이스, PyQt5 그래픽 라이브러리 및 기타 여러 기술을 다룬다. 디자인 패턴을 적용하고 모범 사례를 사용한다.
파이썬 프로그래밍 언어에 약간의 경험이 있다고 가정했지만, 필수적인 건 아니다. 이 책은 파이썬 프로그래머가 되고 싶다면 파이썬 프로그래밍 언어에 대한 입문서로도 사용할 수 있다.
다른 언어에 숙련된 개발자라면 도구 상자에 파이썬으로 GUI 개발 능력을 추가해 전문적인 도구 상자를 확장하는 재미있는 시간을 가질 수 있다.

지은이 소개

부르크하르트 메이어(Burkhard Meyer)

소프트웨어 산업에서 소프트웨어 테스터 및 개발자, 소프트웨어 테스트 자동화 개발, 실행과 분석을 전문으로 19년 이상의 경력이 있다. 파이썬 3 소프트웨어 테스트 자동화 개발과 SQL 관계형 데이터베이스 관리, 저장 프로시저의 개발, 디버깅 코드에 능숙하다. InfoGenesis(현재 Agilysys), QAD, InTouch Health, FLIR Systems의 선임 테스트 자동화 엔지니어 및 디자이너로 일하고 있다. 링크드인(https://www.linkedin.com/pub/burkhard-meier/5/246/296)을 통해 연락할 수 있다. 지난 3년 동안 팩트출판사에서 파이썬 관련 여러 비디오 과정을 개발했으며, 최신 과정은 ‘파이썬을 사용한 객체지향 프로그래밍 마스터링’이다.

옮긴이의 말

2판의 인기에 힘입어 새롭게 출간되는 3판의 번역을 맡게 됐다. 자바스크립트를 포함해 데스크탑용 GUI 프로그램을 만들 수 있는 다양한 플랫폼이 존재함에도 이 책의 3판이 나올 수 있었던 것은 파이썬이라는 언어의 인기와 무관하지 않을 것이다.
2판에서 부족했거나 오류가 있었던 부분이 수정됐고 Tkinter와 함께 가장 인기 있는 GUI 프레임워크인 PyQT 관련된 내용이 새롭게 추가됐다.
Tkinter와 같은 내장모듈의 아쉬운 부분을 채워주고, 강력한 PyQT로 좀 더 미려하고 전문적인 데스크탑용 애플리케이션을 개발할 수 있을 것이다. 현실에서는 많은 서비스가 웹 서비스 형태로 제공되고 있지만, 여전히 데스크톱 환경에서의 애플리케이션이 필요한 분야도 존재한다. 이 책으로 업무에 필요한 다양한 툴이 더 쉽게 개발돼 업무 자동화 및 비즈니스용 툴들이 많이 나왔으면 하는 바람이다.

옮긴이 소개

김동호

PC 통신 시절부터 인터넷으로 전환되는 시점까지 개발자로서 패러다임의 흥망성쇠를 겪으며 10년이 넘는 시간을 보냈다. 돌아보니 C부터 시작해 인기 있던 스크립트 언어들까지 참으로 넓고도 얄팍한 삶을 살아왔다는 생각도 든다. 지금은 개발자로서의 시간을 보내고 있지 않지만 혹시 대박의 기회가 생기지 않을까 하는 생각에 여전히 곁눈질만 하고 있는 게으른 직장인이다. 개발 환경은 점점 편해지고, 툴의 생산성은 점점 높아져 감에 혹시나 하면서 말이다.

목차

목차
  • 1장. GUI 폼 만들기와 위젯 추가하기
    • 첫 파이썬 GUI 만들기
    • 크기 변경에서 GUI 보호하기
    • GUI 폼에 레이블 추가하기
    • 버튼 생성하고 텍스트 속성 바꾸기
    • 텍스트 상자 위젯 생성하기
    • 위젯에 포커스 설정하고 비활성화하기
    • 콤보박스 위젯 생성하기
    • 초기 상태가 다른 체크 버튼 생성하기
    • 라디오 버튼 위젯 사용하기
    • 스크롤되는 텍스트 위젯 사용하기
    • 순환문에서 위젯 추가하기

  • 2장. 레이아웃 관리
    • 레이블 프레임 위젯 안에 여러 개의 레이블 배열하기
    • 위젯 주변에 공간 추가를 위해 패딩 사용하기
    • 위젯으로 GUI 동적 확장하기
    • 프레임 내에 프레임을 임베드해 GUI 위젯 정렬
    • 메뉴바 생성하기
    • 탭 위젯 만들기
    • 그리드 레이아웃 매니저 사용하기

  • 3장. 사용자 정의 룩 앤드 필
    • 정보, 경고, 에러 메시지 박스 생성하기
    • 독립적인 메시지 상자 생성 방법
    • 윈도우 형식의 타이틀 생성 방법
    • 메인 기본 윈도우 아이콘 변경하기
    • 스핀박스 컨트롤 사용하기
    • 릴리프, 썽큰, 레이즈 형태의 위젯 적용하기
    • 파이썬으로 툴팁 생성하기
    • GUI에 프로그레스바 추가하기
    • 캔버스 위젯 사용법

  • 4장. 데이터와 클래스
    • StringVar() 사용 방법
    • 위젯에서 데이터 가져오는 방법
    • 다중 레벨 전역변수 사용하기
    • 클래스를 사용해 GUI를 개선하는 방법
    • 콜백함수 작성
    • 재사용 가능한 GUI 컴포넌트 만들기

  • 5장. Matplotlib 차트
    • pip로 whl 확장자를 가진 Matplotlib 설치하기
    • 첫 차트 만들기
    • 차트에 레이블 배치하기
    • 차트에 범례 제공하는 방법
    • 차트 스케일링
    • 동적으로 차트 스케일 조정하기

  • 6장. 스레드와 네트워킹
    • 멀티 스레드 생성하기
    • 스레드 시작하기
    • 스레드 멈추기
    • 큐 사용법
    • 서로 다른 모듈 간 큐 전달하기
    • 대화 상자 위젯으로 네트워크에 파일 복사하기
    • 네트워크 통신을 위해 TCP/IP를 사용하기
    • urlopen으로 웹사이트 데이터 읽어오기

  • 7장. GUI를 통해 MySQL에 데이터 저장하기
    • 파이썬에서 MySQL 서버 설치 및 연결하기
    • MySQL 데이터베이스 연결 설정하기
    • 파이썬 GUI 데이터베이스 설계하기
    • SQL INSERT 명령 사용하기
    • SQL UPDATE 명령 사용하기
    • SQL DELETE 명령 사용하기
    • MySQL 데이터베이스에서 데이터 저장, 조회하기
    • MySQL 워크벤치 사용하기

  • 8장. 국제화 및 테스팅
    • 다른 언어로 텍스트 위젯 표시하기
    • 전체 GUI 언어 한 번에 바꾸기
    • GUI 지역화
    • 국제화 GUI 준비하기
    • 애자일하게 GUI 설계하는 방법
    • GUI 코드 테스트의 필요성
    • 디버그워치 설정하기
    • 다양한 디버그 출력 레벨 설정하기
      • main 섹션을 사용해 셀프 테스트 코드 만들기
    • 유닛 테스트를 통해 강력한 GUI 만들기
    • 이클립스 PyDev IDE로 유닛테스트 작성하기

  • 9장. wxPython 라이브러리로 GUI 확장하기
    • wxPython 라이브러리 설치하기
    • wxPython으로 GUI 생성하기
    • wxPython으로 빠르게 컨트롤 추가하기
    • 메인 tikinter 앱에 wxPython 앱 임베딩하기
    • wxPython에 tkinter GUI 코드 임베딩하기
    • 파이썬에서 두 개의 다른 GUI 프레임워크 제어하기
    • 연결된 두 GUI 사이의 통신

  • 10장. PyQt5로 GUI 만들기
    • PyQt5 설치하기
    • PyQt5 디자이너 도구 설치하기
    • 첫 PyQt5 GUI 작성하기
    • GUI 타이틀 변경하기
    • 객체지향 코드로 리팩터링하기
    • QMainWindow 상속하기
    • 상태바 위젯 추가하기
    • 메뉴바 위젯 추가하기
    • PyQt5 디자이너 도구 시작하기
    • PyQt5 Designer에서 폼 미리보기
    • PyQt5 디자이너 폼 저장하기
    • 디자이너 .ui 코드를 .py 코드로 변환하기
    • 변환된 디자이너 코드 이해하기
    • 모듈식 GUI 디자인 만들기
    • 메뉴바에 다른 메뉴 추가하기
    • 메뉴 항목에 기능 연결하기
    • 디자이너를 통해 탭 위젯 추가하기
    • 디자이너 레이아웃 사용하기
    • 디자이너에서 버튼과 레이블 추가하기

  • 11장. 베스트 프랙티스
    • 스파게티 코드 피하기
    • 커넥트 모듈 init 사용하기
    • 절차지향과 객체지향 방식의 혼합
    • 코드 명명 규칙 사용하기
    • OOP를 사용하지 않을 때
    • 성공적으로 디자인 패턴 사용하는 방법
    • 복잡성 피하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.14: 아래에서 1행]
파이썬 프로그래밍 언어를 사용해 아름답고 기능적이며 강력한 GUI를 개발할 이룰 수 있는 것에 놀랄 수 있다.
->
파이썬 프로그래밍 언어를 사용해 아름답고 기능적이며 강력한 GUI를 개발할 수 있는 것에 놀랄 수 있다.

[p.56 : 아래서 3행]
value
->
alue = col

[p.56 : 아래서 2행]
brid
->
grid