
이 강의는 Tkinter GUI 강의 39강입니다
38강에서는
ttk 테마(theme)의 개념과
테마를 변경하는 방법을 배웠습니다.
이번 강의에서는
같은 코드가 테마에 따라 어떻게 달라 보이는지
직접 비교해 봅니다.
이번 강의의 목표는 분명합니다.
테마가
디자인 옵션이 아니라 UI 기본값 세트라는 것을
시각적으로 이해하는 것입니다.
비교는 “같은 코드”로 해야 의미가 있다
테마 차이를 확인할 때
가장 중요한 원칙은 이것입니다.
코드는 그대로 두고
테마만 바꾼다
그래야
무엇이 테마의 역할인지
명확해집니다.
비교용 공통 UI 코드 준비하기
아래 코드는
모든 테마 비교에
공통으로 사용합니다.
import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.geometry("300x220")
style = ttk.Style()
ttk.Label(window, text="테마 테스트").pack(pady=10)
ttk.Entry(window).pack(pady=5)
ttk.Button(window, text="확인").pack(pady=10)
ttk.Checkbutton(window, text="옵션").pack()
window.mainloop()
이제
이 코드에서
테마만 바꿔보겠습니다.
default 테마 살펴보기
default 테마는
가장 기본적인 테마입니다.
style.theme_use("default")
특징은 다음과 같습니다.
- 무난한 외형
- 테마 효과가 약함
- 스타일 수정 전 기본 기준

clam 테마 살펴보기
clam 테마는
ttk에서
가장 많이 사용되는 테마 중 하나입니다.
style.theme_use("clam")
특징은 다음과 같습니다.
- 버튼 윤곽이 또렷함
- 입력창 구분이 명확
- 스타일 커스터마이징에 유리
실습용으로
가장 추천되는 테마입니다.

alt 테마 살펴보기
style.theme_use("alt")
alt 테마는
조금 더
단순한 외형을 가집니다.
- 대비가 강함
- 기본 UI 느낌이 강함
- 가벼운 툴에 적합

classic 테마 살펴보기
style.theme_use("classic")
classic 테마는
옛 tk 스타일에
가깝습니다.
- 오래된 느낌
- 현대 UI에는 부적합
- 학습용 비교에는 유용

테마에 따라 달라지는 요소들
테마를 바꾸면
다음 요소들이
함께 바뀝니다.
- 버튼 입체감
- 입력창 테두리
- 체크박스 표시 방식
- 포커스 표시
즉,
위젯의 기본 스킨 전체가 바뀝니다.
스타일이 없을 때 테마 영향은 더 크다
아직
스타일을 거의 쓰지 않은 상태에서는
테마의 영향이
아주 크게 보입니다.
이건 정상입니다.
- 테마 → 기본값 제공
- 스타일 → 그 위에서 조정
이 구조 때문입니다.
테마는 “선택”이고 스타일은 “조정”이다
역할을 다시 정리하면
이렇습니다.
- 테마 : 전체 UI 분위기 선택
- 스타일 : 세부 외형 조정
그래서
테마를 먼저 고르고
스타일은 나중에 씁니다.
테마 선택 기준은 무엇일까
실전 기준으로
다음 기준을 추천합니다.
- 학습 / 실습 → clam
- 간단한 내부 툴 → default 또는 clam
- 디자인 중요 X → alt
- 비교 / 테스트 → classic
테마는
많이 바꿀 필요가 없습니다.
테마를 런타임에 바꿔도 될까
기술적으로는
가능합니다.
style.theme_use("clam")
하지만
실무에서는
권장하지 않습니다.
- UI 일관성 붕괴
- 사용자 혼란
- 스타일 충돌 가능성
보통은
프로그램 시작 시 한 번만 설정합니다.
이 강의의 진짜 목적
이번 강의의 목적은
“예쁜 테마 찾기”가 아닙니다.
- 테마가 어디까지 책임지는지
- 스타일이 왜 필요한지
- GUI를 시스템으로 보는 눈
이 감각을
만드는 것입니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- 같은 코드라도 테마에 따라 UI가 달라진다
- 테마는 UI 기본값 세트다
- 스타일은 테마 위에서 동작한다
- 테마는 자주 바꾸지 않는다
다음 강의 예고
다음 강의에서는
ttk Button 스타일을 직접 커스터마이징해 봅니다.
이제
테마 위에
“의도적인 디자인”을
얹기 시작합니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 41강 ttk Label과 Entry 스타일 적용 (0) | 2026.02.10 |
|---|---|
| [Tkinter] 40강 ttk Button 스타일 커스터마이징 (0) | 2026.02.09 |
| [Tkinter] 38강 ttk 테마(theme) 변경하기 (0) | 2026.02.08 |
| [Tkinter] 37강 ttk 스타일(style) 기본 개념 이해하기 (0) | 2026.02.08 |
| [Tkinter] 36강 ttk Button과 Label 사용하기 (0) | 2026.02.07 |