PySide6로 Python 기반 Qt Widgets 앱을 만드는 무료 책 *PySide6 Blueprints*가 공개됐다. 설치와 위젯 배치부터 모델·뷰 프로그래밍, 멀티스레딩, 데이터베이스까지 다루며 부록에는 PySide6 도구와 모듈 참고 자료도 담겼다.

  • 머리말
  • 제1부 기초
  • 1장 시작하기: 설치, 재사용 가능한 시작점, 창에 위젯 추가하기, Qt 문서 읽기, Qt Widgets 안내
  • 2장 시그널과 슬롯: 시그널을 슬롯에 연결하기, 슬롯에 인수 전달하기
  • 3장 Qt Widgets 레이아웃: 위젯을 세로로 쌓기(QVBoxLayout), 나란히 배치하기(QHBoxLayout), 레이아웃 중첩하기, 그리드에 배치하기(QGridLayout), 폼 배치하기(QFormLayout)
  • 제2부 Qt Widgets 도구 모음
  • 4장 표시 위젯: QLabel로 텍스트 표시하기, QLabel로 이미지 표시하기, QLCDNumber로 LCD 형태의 숫자 표시하기, QProgressBar로 진행 상태 표시하기
  • 5장 버튼: QPushButton으로 동작 실행하기, 켜짐·꺼짐 상태를 유지하는 체크 가능한 QPushButton, 독립적인 선택 항목을 위한 QCheckBox, 서로 배타적인 선택을 위한 QRadioButton, 그룹을 명시적으로 관리하는 QButtonGroup
  • 6장 숫자 위젯: QSpinBox, QDoubleSpinBox, QSlider, QDial
  • 7장 텍스트 위젯: QLineEdit, QTextEdit, QPlainTextEdit
  • 8장 목록 위젯: QComboBox, QListWidget, QListView
  • 9장 표 위젯: QTableWidget, QTableView
  • 10장 트리 위젯: QTreeWidget, QTreeView, 지연 로딩 트리
  • 11장 컨테이너: QGroupBox, QScrollArea, QToolBox, QTabWidget, QSplitter, 컨테이너 선택하기
  • 12장 메인 윈도우: 중앙 위젯 설정하기, 상태 표시줄 추가하기, 메뉴와 동작 만들기, 도구 모음 추가하기, 도킹 위젯 사용하기
  • 13장 대화상자: QMessageBox로 표준 메시지 대화상자 만들기, QInputDialog로 입력 대화상자 만들기, QFileDialog로 파일 대화상자 만들기, QColorDialog로 색 선택하기, QFontDialog로 글꼴 선택하기, QDialog를 서브클래싱해 사용자 지정 대화상자 만들기
  • 14장 Qt 스타일 사용자 지정: 스타일 시스템, QPalette와 색상 역할, QProxyStyle로 메트릭과 힌트 재구현하기, 원시 요소·컨트롤·복합 컨트롤, drawControl() 재구현하기
  • 15장 Qt 스타일 시트(QSS): 선택자 유형, 속성, 의사 상태, 하위 컨트롤, 박스 모델
  • 16장 사용자 지정 위젯 만들기: QWidget 서브클래싱으로 최소 TagBar 만들기, QPainter와 paintEvent()로 태그 그리기, 이벤트 처리하기, 흐름 레이아웃·크기 힌트·레이아웃 통합
  • 제3부 Qt 객체 모델
  • 17장 객체 트리와 소유권: 부모·자식 관계, Qt 객체의 부모 재지정, Qt 객체의 자식 찾기, 수동 소유권 이전, 자동 삭제
  • 18장 시그널과 슬롯 자세히 보기: 흔한 함정, 사용자 지정 시그널, 시그널 차단, 연결 객체, 하나의 시그널에 여러 슬롯 연결하기, 연결 해제하기
  • 19장 이벤트: 이벤트 핸들러, 객체 이벤트 필터, 애플리케이션 전체 이벤트 필터, 이벤트 전파, 사용자 지정 이벤트, 이벤트 전달 순서
  • 20장 타이머: 단발 타이머, 타이머 시작과 중지, 타이머 간격 조정, 카운트다운 타이머, 스톱워치
  • 21장 속성: 기본 속성 선언, 속성 알림과 초기화, 상수 및 저장되지 않는 속성, 유효성 검사 기반 스타일 지정을 위한 동적 속성, 사용자 지정 속성 애니메이션, QMetaObject로 속성 검사하기
  • 제4부 모델·뷰 프로그래밍
  • 22장 QAbstractListModel: 읽기 전용 목록 모델, 편집 가능한 목록 모델, 데이터와 위젯 매핑, 크기 조정 가능한 목록 모델
  • 23장 QAbstractTableModel: 기본 읽기 전용 표 모델, 표 모델 편집 가능하게 만들기, 표 모델에 데이터 위젯 매퍼 사용하기, 크기 조정 가능한 표 모델
  • 24장 QAbstractItemModel: 기본 읽기 전용 단일 열 트리 모델, 트리 모델에 여러 열 추가하기, 트리 모델 편집 가능하게 만들기, 크기 조정 가능한 트리 모델(노드 삽입과 제거), 모델 유형별 최소 구현 메서드, 적절한 모델과 뷰 선택하기
  • 25장 델리게이트: 항목 데이터 역할로 표시 사용자 지정하기, QItemEditorFactory에 표준 위젯 등록하기, QItemEditorFactory에 사용자 지정 위젯 등록하기, QStyledItemDelegate에서 사용자 지정 표시 구현하기, QStyledItemDelegate에서 사용자 지정 편집기 구현하기, 델리게이트에서 표시와 편집 결합하기, 뷰의 영구 편집기
  • 26장 정렬·필터링·선택: 사용자 지정 모델에서 제자리 정렬 구현하기, 사용자 지정 모델에서 비파괴 정렬하기, 데이터 변경 시 자동 정렬하기, 프록시 모델로 정렬하기, 프록시 모델로 기본 필터링하기, 프록시 모델에서 사용자 지정 필터링하기, 선택 모드와 동작, 선택 변경에 대응하기, 여러 뷰에서 선택 모델 공유하기, 사용자 지정 선택 처리
  • 제5부 멀티스레딩
  • 27장 작업자 객체와 moveToThread: Qt GUI를 막는 잘못된 방법, 최소 동작 예제, 파일 시스템 탐색하기, QThread 객체 재사용하기, QThread를 재사용하며 파일 시스템 탐색하기, 스레드 간 시그널과 슬롯
  • 28장 QThread 서브클래싱: 최소 예제, 파일 시스템 탐색하기
  • 29장 QThreadPool과 QRunnable: 최소 예제, 파일 시스템 탐색하기
  • 30장 스레드 동기화: 경쟁 상태 데모, 대기열 방식 시그널·슬롯 연결, QMutex, QMutexLocker, QSemaphore, QSemaphoreReleaser, QWaitCondition
  • 31장 실제 상황에서의 타이머: QElapsedTimer로 경과 시간 측정하기, QDeadlineTimer로 마감 시간 기반 대기하기, QTimer로 사용자 입력 디바운싱하기, QTimer로 빠른 업데이트 제한하기, 저수준 타이머인 QObject.startTimer()와 QBasicTimer
  • 32장 시그널과 슬롯 연결 유형: 직접 연결, 대기열 연결, 대기열 차단 연결, 고유 연결, 단발 연결
  • 제6부 특별 주제
  • 33장 데이터베이스: 데이터베이스 연결, 간단한 쿼리 실행하기, 데이터 삽입하기, QSqlTableModel로 데이터 표시 및 편집하기, QSqlRelationalTableModel로 관계형 데이터 처리하기, QSqlQueryModel로 사용자 지정 쿼리 처리하기, 단일 레코드 폼, 마스터·세부 정보 폼
  • 34장 프로세스: 기본 프로세스 실행, 프로세스에 고정 입력 제공하기, 청크 단위 출력 처리의 흔한 함정, 대화형 프로세스 통신, 프로세스 환경 설정, 동기식 프로세스 실행, 프로세스 종료하기
  • 35장 그래픽 뷰 프레임워크: 캔버스인 QGraphicsScene과 QGraphicsView, 내장 그래픽 항목으로 보드 채우기, 사용자 지정 QGraphicsItem 그리기, 상호작용과 이벤트로 항목 선택하기, 항목 변환으로 크기 조정하기
  • 36장 애니메이션 프레임워크: QPropertyAnimation 기초, 색상·기하 구조·불투명도 애니메이션, 이징 곡선, 순차 애니메이션 그룹, 병렬 애니메이션 그룹, 애니메이션 일시 중지
  • 부록: A. PySide6 도구 참고 자료, B. PySide6 모듈, C. 입력 위젯을 데이터 유형별로 그룹화하기