
이 강의는 Tkinter GUI 강의 35강입니다
34강에서는
마우스 더블 클릭 이벤트를 처리하며
이벤트 기반 UI 흐름을 정리했습니다.
이번 강의부터는
Tkinter의 외형과 구조를 한 단계 업그레이드하는
ttk 위젯을 다룹니다.
이번 강의의 목표는 분명합니다.
ttk가 무엇인지 정확히 이해하고,
왜 기본 tk 위젯 대신 ttk를 쓰는지 감각을 잡는 것입니다.
ttk는 무엇인가
ttk는
Themed Tkinter Widgets의 약자입니다.
즉,
기존 Tkinter 위젯에
테마와 스타일 개념을 추가한 위젯 세트입니다.
tk → 기능 중심
ttk → 기능 + 외형 + 구조
ttk는 별도의 라이브러리가 아니다
중요한 오해 하나를 먼저 정리합니다.
ttk는
외부 라이브러리가 아닙니다.
Tkinter에
기본 포함된 모듈입니다.
from tkinter import ttk
이 한 줄이면
바로 사용할 수 있습니다.
왜 ttk가 필요한가
기본 tk 위젯의 가장 큰 한계는
외형이 오래되어 보인다는 점입니다.
- 버튼이 투박함
- OS 느낌이 안 남
- 스타일 통일이 어려움
ttk는
이 문제를 해결합니다.
tk 위젯과 ttk 위젯 비교
먼저
기존 tk 버튼입니다.
import tkinter as tk
window = tk.Tk()
window.geometry("300x200")
tk.Button(window, text="tk 버튼").pack(pady=20)
window.mainloop()
다음은
ttk 버튼입니다.
import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.geometry("300x200")
ttk.Button(window, text="ttk 버튼").pack(pady=20)
window.mainloop()
외형부터
차이가 느껴질 것입니다.
ttk 위젯의 가장 큰 특징
ttk 위젯의 핵심 특징은
다음 세 가지입니다.
- OS 테마를 따른다
- 스타일을 중앙에서 관리한다
- 구조적으로 설계되어 있다
이 중에서도
스타일 분리 개념이
가장 중요합니다.
ttk는 색상 옵션을 직접 쓰지 않는다
tk 위젯에서는
이런 코드가 익숙합니다.
tk.Button(window, text="버튼", bg="red")
하지만
ttk에서는
이 방식이 권장되지 않습니다.
ttk.Button(window, text="버튼")
색상과 모양은
Style 객체가 관리합니다.
ttk가 강의 후반부에 등장하는 이유
ttk는
처음부터 배우면
오히려 헷갈립니다.
- 레이아웃
- 이벤트
- 입력 처리
이 기본이 잡힌 뒤에야
스타일과 구조 개념이 의미를 가집니다.
그래서
35강부터 등장하는 것이
가장 자연스럽습니다.
ttk 위젯 종류 살펴보기
ttk는
기존 위젯을
대부분 대체합니다.
대표적인 ttk 위젯은 다음과 같습니다.
- ttk.Button
- ttk.Label
- ttk.Entry
- ttk.Checkbutton
- ttk.Radiobutton
- ttk.Combobox
- ttk.Progressbar
기본 사용법은
tk 위젯과 거의 동일합니다.
ttk 위젯 기본 사용 패턴
from tkinter import ttk
ttk.Button(부모, text="버튼")
차이점은
옵션보다 구조에 있습니다.
ttk를 사용하면 얻는 진짜 이득
ttk를 사용하면
단순히 예뻐지는 것 이상을 얻습니다.
- UI 일관성
- 유지보수 쉬운 코드
- 스타일 분리 설계
- 다른 GUI로 넘어가기 쉬움
즉,
GUI 사고가 한 단계 올라갑니다.
ttk는 다른 GUI로 가는 다리다
중요한 관점 하나입니다.
ttk를 이해하면
다음이 훨씬 쉬워집니다.
- PyQt
- PySide
- Unity Editor UI
- 웹 UI 프레임워크
왜냐하면
스타일과 구조를 분리하는 사고가
공통이기 때문입니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- ttk는 테마 기반 Tkinter 위젯이다
- Tkinter에 기본 포함되어 있다
- 외형과 스타일 개념이 분리되어 있다
- GUI 사고력을 키워주는 도구다
다음 강의 예고
다음 강의에서는
ttk Button과 Label을 직접 사용하면서
tk 위젯과의 차이를 더 명확히 비교합니다.
이제부터
UI가
확실히 “프로그램다워지기” 시작합니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 37강 ttk 스타일(style) 기본 개념 이해하기 (0) | 2026.02.08 |
|---|---|
| [Tkinter] 36강 ttk Button과 Label 사용하기 (0) | 2026.02.07 |
| [Tkinter] 34강 더블 클릭 이벤트 처리하기 (0) | 2026.02.06 |
| [Tkinter] 33강 엔터 키로 버튼 동작 시키기 (0) | 2026.02.06 |
| [Tkinter] 32강 이벤트 객체(event) 구조 이해하기 (0) | 2026.02.05 |