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

Tkinter 애플리케이션의 전체 테마를 변경하는 방법

Tkinter의 ttk 테마 위젯(themed widget)은 애플리케이션 내 위젯의 외형과 스타일을 손쉽게 디자인할 수 있도록 도와주는 기능입니다. ttkTcl/Tk 인터프리터를 기반으로 동작하며, 다양한 내장 속성과 기능을 통해 위젯 및 애플리케이션 인터페이스에 접근할 수 있게 해줍니다.

Ttk 테마를 Tcl 테마와 비교하면 상당한 차이가 있는데, Ttk는 아래와 같이 몇 가지 테마만 지원합니다.

  • winnative
  • clam
  • alt
  • default
  • classic
  • vista
  • xpnative

Tkinter 애플리케이션의 전체 테마를 변경하려면 style.theme_use(theme_name) 함수를 사용하면 됩니다. 이 함수에 원하는 테마 이름을 전달하면 애플리케이션 전체의 외관이 해당 테마로 적용됩니다.

예제 코드

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

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

# 윈도우 크기 설정
win.geometry("700x350")

# ttk Style 인스턴스 생성
style = ttk.Style()

# 스타일을 이용해 테마 구성
style.theme_use('clam')

# 메시지를 표시하는 함수 정의
def display_msg():
    messagebox.showinfo("Message", "You are learning Python Tkinter!")

# 커스터마이징된 Label 위젯 추가
label = ttk.Label(win, text="Hey Folks, I have a Message for You!", font=('Aerial 16'))
label.pack(pady=5)

# Button 위젯 추가
ttk.Button(win, text="Show Message", command=display_msg).place(x=285, y=98)

win.mainloop()

실행 결과

위 코드를 실행하면 레이블(Label) 위젯과 버튼(Button)이 배치된 창이 열립니다. 애플리케이션의 전체적인 테마는 ttk 테마 위젯에 의해 결정되며, Tkinter 라이브러리에서 제공하는 사용 가능한 테마 목록 중 원하는 테마를 선택하여 자유롭게 구성할 수 있습니다.

위 예제에서는 'clam' 테마를 적용했지만, 'vista', 'alt', 'classic' 등 다른 테마로 변경하면 버튼과 레이블의 모양이 즉시 달라지는 것을 확인할 수 있습니다. 운영체제별로 지원되는 테마가 다를 수 있으므로, style.theme_names() 메서드를 활용하면 현재 시스템에서 사용 가능한 테마 목록을 쉽게 조회할 수 있습니다.