
이 강의는 Tkinter GUI 강의 42강입니다
41강에서는
ttk Label과 Entry에 스타일을 적용하며
화면의 정보 구조를 정리했습니다.
이번 강의에서는
한 단계 더 나아가
공통 스타일을 어떻게 설계해야 하는지를 다룹니다.
이번 강의의 목표는 분명합니다.
스타일을
그때그때 추가하는 것이 아니라
처음부터 구조적으로 설계하는 감각을 익히는 것입니다.
공통 스타일이 왜 필요한가
UI가 커질수록
이런 문제가 생깁니다.
- 버튼마다 스타일 이름이 제각각
- Label 폰트가 미묘하게 다름
- 수정할 때 어디를 고쳐야 할지 모름
이 문제의 원인은 하나입니다.
스타일 설계가 없기 때문입니다.
공통 스타일 설계의 핵심 사고
공통 스타일 설계의 핵심은
아래 한 문장으로 정리됩니다.
“위젯이 아니라 역할을 기준으로 스타일을 만든다”
색상, 크기가 아니라
UI에서 맡는 역할이 기준입니다.
스타일 설계 전, 역할부터 나누자
예를 들어
일반적인 화면에는
이런 역할이 있습니다.
- 제목
- 설명 텍스트
- 입력 항목 이름
- 일반 버튼
- 주요 버튼
이 역할들이
공통 스타일의 기준이 됩니다.
공통 스타일 이름 예시
실무에서 많이 쓰는
스타일 이름 예시는 다음과 같습니다.
Title.TLabel
Body.TLabel
Form.TEntry
Primary.TButton
Secondary.TButton
이 이름만 봐도
화면 구조가
머릿속에 그려집니다.
공통 스타일을 한 곳에서 정의하기
공통 스타일은
프로그램 시작 시 한 번만 정의하는 것이 좋습니다.
style = ttk.Style()
style.configure("Title.TLabel", font=("Arial", 16, "bold"))
style.configure("Body.TLabel", font=("Arial", 11))
style.configure("Form.TEntry", padding=6)
style.configure("Primary.TButton", padding=(10, 6))
이제
이 스타일들은
프로그램 전체에서
공통으로 사용됩니다.
공통 스타일을 사용하는 예제
import tkinter as tk
from tkinter import ttk
window = tk.Tk()
window.geometry("300x220")
style = ttk.Style()
style.configure("Title.TLabel", font=("Arial", 16, "bold"))
style.configure("Body.TLabel", font=("Arial", 11))
style.configure("Form.TEntry", padding=6)
style.configure("Primary.TButton", padding=(10, 6))
ttk.Label(window, text="회원 가입", style="Title.TLabel").pack(pady=10)
ttk.Label(window, text="이메일", style="Body.TLabel").pack()
ttk.Entry(window, style="Form.TEntry").pack(pady=5)
ttk.Button(window, text="가입하기", style="Primary.TButton").pack(pady=15)
window.mainloop()
UI가
의미 단위로
정리되어 보이기 시작합니다.
공통 스타일의 가장 큰 장점
공통 스타일의 진짜 장점은
수정 비용입니다.
style.configure("Body.TLabel", font=("Arial", 12))
이 한 줄로
프로그램 전체의
설명 텍스트가
한 번에 바뀝니다.
스타일을 너무 잘게 쪼개지 말자
처음 공통 스타일을 만들 때
자주 하는 실수가 있습니다.
- Label마다 스타일 생성
- Entry마다 스타일 생성
이건
공통 스타일이 아니라
스타일 난립입니다.
권장 기준은 다음과 같습니다.
- 정말 다른 역할만 분리
- 비슷하면 하나로 묶기
공통 스타일은 디자인 시스템이다
이 단계부터는
스타일을
“옵션 모음”으로 보면 안 됩니다.
공통 스타일은
작은 디자인 시스템입니다.
- UI 규칙
- 텍스트 계층
- 입력 패턴
이게 정리되면
GUI 설계가
매우 편해집니다.
다른 GUI에서도 그대로 쓰이는 개념
이 방식은
Tkinter에만 국한되지 않습니다.
- 웹의 Design System
- PyQt의 공통 StyleSheet
- Unity UI 스타일 프리셋
지금 배우는 건
GUI 공통 설계 사고입니다.
공통 스타일 설계 타이밍
가장 좋은 타이밍은 다음입니다.
- 기본 UI 구조 완성
- 화면 반복 패턴 확인
- 공통 스타일 정리
너무 일찍 잡아도
너무 늦어도
비효율적입니다.
이번 강의 핵심 정리
이번 강의에서 꼭 기억해야 할 내용입니다.
- 공통 스타일은 역할 기준으로 설계한다
- 프로그램 시작 시 한 번만 정의한다
- 수정 비용을 획기적으로 줄여준다
- GUI를 시스템으로 바라보게 만든다
다음 강의 예고
다음 강의에서는
스타일 코드를 파일로 분리하는 방법을 다룹니다.
이제
UI 코드와
스타일 코드가
완전히 분리됩니다.
'⚙️ Python > 🪟 Tkinter 기초' 카테고리의 다른 글
| [Tkinter] 44강 Menu 위젯으로 메뉴바 만들기 (0) | 2026.02.11 |
|---|---|
| [Tkinter] 43강 스타일 코드 분리하기 (0) | 2026.02.11 |
| [Tkinter] 41강 ttk Label과 Entry 스타일 적용 (0) | 2026.02.10 |
| [Tkinter] 40강 ttk Button 스타일 커스터마이징 (0) | 2026.02.09 |
| [Tkinter] 39강 기본 테마별 UI 차이 비교 (0) | 2026.02.09 |