본문 바로가기

[Tkinter] 35강 ttk 위젯이란 무엇인가

@도마22026. 2. 7. 18:00
728x90


이 강의는 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가
확실히 “프로그램다워지기” 시작합니다.


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

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

목차