Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter에서 모든 위젯의 기본 글꼴을 한 번에 변경하는 방법

Tkinter 애플리케이션을 개발하다 보면 앱 전체에서 사용되는 기본 글꼴을 통일하고 싶은 경우가 자주 있습니다. 이럴 때 위젯마다 일일이 글꼴을 지정하는 대신, option_add(**options) 메서드를 활용하면 손쉽게 해결할 수 있습니다.

option_add() 메서드란?

option_add()는 Tkinter 애플리케이션 전체에 공통 옵션을 적용하는 메서드입니다. 배경색, 글꼴 등 다양한 속성을 패턴(pattern) 형태로 지정할 수 있으며, 이 메서드로 설정된 값은 이후 생성되는 모든 위젯이 자동으로 상속받게 됩니다.

예를 들어 "*Font"처럼 와일드카드(*)를 사용하면 모든 위젯에 적용되고, "*Label.Font"처럼 특정 위젯 이름을 명시하면 해당 위젯에만 선택적으로 적용됩니다.

예제 코드

아래 스크립트는 애플리케이션의 기본 글꼴을 설정하여, 정의된 모든 위젯이 동일한 글꼴과 배경색을 사용하도록 만든 예시입니다.

# 필요한 라이브러리 임포트
from tkinter import *

# Tkinter 프레임 인스턴스 생성
win = Tk()

win.geometry("700x350")

# 모든 위젯에 적용될 기본 글꼴 추가
win.option_add("*Font", "arial")

# Label 위젯에만 적용될 글꼴 설정
win.option_add("*Label.Font", "arial 18 bold")

# 모든 위젯의 배경색 지정
win.option_add("*Background", "bisque")

# 여러 위젯 화면에 표시
Label(win, text="Label").pack()
Button(win, text="Button").pack()

# Listbox 위젯 생성
w = Listbox(win)
for i in range(5):
    w.insert(i, "item %d" % (i+1))
w.pack()

# Text 위젯 생성
w = Text(win, width=20, height=10)
w.insert(1.0, "a text widget")
w.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 레이블(Label) 위젯, 버튼(Button), 리스트박스(Listbox), 그리고 텍스트(Text) 위젯이 포함된 창이 나타납니다. 출력 결과를 살펴보면 모든 위젯이 option_add()로 설정한 글꼴과 배경색 속성을 동일하게 상속받아 적용된 것을 확인할 수 있습니다.

정리

이처럼 option_add() 메서드를 사용하면 각 위젯에 개별적으로 폰트나 색상을 지정하지 않고도, 애플리케이션 전체의 UI 스타일을 일관되게 유지할 수 있습니다. 특히 규모가 큰 GUI 프로그램에서 디자인 통일성을 확보할 때 매우 유용한 기법이므로 꼭 기억해 두세요.

Tkinter에서 모든 위젯의 기본 글꼴을 한 번에 변경하는 방법