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