본문 바로가기

[Tkinter] 38강 ttk 테마(theme) 변경하기

@도마22026. 2. 8. 21:00
728x90


이 강의는 Tkinter GUI 강의 38강입니다

37강에서는
ttk 스타일(style)의 기본 개념을 배우며
외형과 기능이 분리되는 구조를 이해했습니다.

이번 강의에서는
스타일보다 한 단계 위에 있는 개념,
ttk 테마(theme) 를 다룹니다.

이번 강의의 목표는 분명합니다.
테마가
무엇을 담당하고, 스타일과 어떤 관계인지
명확히 구분하는 것입니다.


테마(theme)는 무엇인가

ttk에서 테마는
UI 전체의 기본 외형 세트입니다.

즉,

  • 버튼 모양
  • 입력창 테두리
  • 기본 색상
  • 위젯 간 간격

같은 요소들을
한 묶음으로 정의한 것입니다.

Theme = UI 기본값 세트
Style = 테마 위에서 덮어쓰기

이 관계를
기억하는 것이 중요합니다.


스타일과 테마의 관계 정리

많이 헷갈리는 부분을
정리하면 다음과 같습니다.

  • 테마 → 전체 UI의 기본 틀
  • 스타일 → 특정 위젯 외형 조정

즉,
테마가 바뀌면 스타일의 기준도 바뀝니다.


현재 사용 가능한 테마 확인하기

ttk는
여러 기본 테마를 제공합니다.

현재 시스템에서
사용 가능한 테마는
다음 코드로 확인할 수 있습니다.

import tkinter as tk
from tkinter import ttk

window = tk.Tk()

style = ttk.Style()
print(style.theme_names())

window.mainloop()

운영체제에 따라
목록은 다를 수 있습니다.


테마 변경 기본 방법

테마는
Style 객체를 통해 변경합니다.

style.theme_use("clam")

이 한 줄로
UI 전체 테마가
변경됩니다.


테마 변경 기본 예제

import tkinter as tk
from tkinter import ttk

window = tk.Tk()
window.geometry("300x200")

style = ttk.Style()
style.theme_use("clam")

ttk.Button(window, text="버튼").pack(pady=40)

window.mainloop()

버튼의 모양이
눈에 띄게 달라지는 것을
확인할 수 있습니다.


자주 사용되는 기본 테마들

환경에 따라 다르지만
자주 등장하는 테마는 다음과 같습니다.

  • default
  • clam
  • alt
  • classic

Windows에서는
운영체제 연동 테마도
등장할 수 있습니다.


테마는 언제 설정해야 할까

테마는
프로그램 시작 시 한 번만 설정하는 것이 좋습니다.

style.theme_use("clam")

위젯을 만든 뒤에
테마를 바꾸면
예상치 못한 결과가 나올 수 있습니다.


테마를 자주 바꾸지 않는 이유

테마는
강력하지만
자주 바꾸는 대상은 아닙니다.

이유는 다음과 같습니다.

  • UI 일관성이 깨질 수 있음
  • 스타일 코드가 복잡해짐
  • 유지보수가 어려워짐

실무에서는
하나의 테마 + 스타일 조정
가장 안정적입니다.


테마와 스타일을 함께 사용하는 흐름

권장 흐름은 다음과 같습니다.

  1. 테마 선택
  2. 기본 UI 확인
  3. 필요한 부분만 스타일로 조정

이 순서를 지키면
UI가 깔끔해집니다.


테마 변경은 디자인이 목적이 아니다

중요한 관점 하나입니다.

테마 변경의 목적은
“예쁘게 만들기”가 아닙니다.

  • OS에 어울리는 UI
  • 위젯 간 통일성
  • 사용자에게 익숙한 느낌

즉,
UX 안정성이 목적입니다.


다른 GUI에서도 테마 개념은 동일하다

이 개념은
Tkinter만의 것이 아닙니다.

  • PyQt의 스타일 엔진
  • 웹 프레임워크의 테마
  • Unity UI 스킨

전부
같은 구조를 가집니다.

지금 배우는 건
GUI 공통 개념입니다.


테마를 이해하면 생기는 변화

테마 개념을 이해하면
이런 변화가 생깁니다.

  • 색상부터 고치지 않게 된다
  • UI를 시스템 단위로 바라본다
  • 스타일 수정이 두렵지 않다

이게
GUI 중급자로 넘어가는
분기점입니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • 테마는 UI 전체 기본 외형이다
  • Style 객체로 설정한다
  • 스타일은 테마 위에서 동작한다
  • 테마는 한 번만 설정하는 것이 좋다

다음 강의 예고

다음 강의에서는
테마별 UI 차이를 실제로 비교해 봅니다.

같은 코드가
테마에 따라
어떻게 달라 보이는지
직접 확인할 차례입니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차