본문 바로가기

[Tkinter] 42강 공통 스타일 설계 방법

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


이 강의는 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 공통 설계 사고입니다.


공통 스타일 설계 타이밍

가장 좋은 타이밍은 다음입니다.

  1. 기본 UI 구조 완성
  2. 화면 반복 패턴 확인
  3. 공통 스타일 정리

너무 일찍 잡아도
너무 늦어도
비효율적입니다.


이번 강의 핵심 정리

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

  • 공통 스타일은 역할 기준으로 설계한다
  • 프로그램 시작 시 한 번만 정의한다
  • 수정 비용을 획기적으로 줄여준다
  • GUI를 시스템으로 바라보게 만든다

다음 강의 예고

다음 강의에서는
스타일 코드를 파일로 분리하는 방법을 다룹니다.

이제
UI 코드와
스타일 코드가
완전히 분리됩니다.


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

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

목차