파이썬은 애플리케이션의 다양한 구성 요소를 만들 수 있는 풍부한 라이브러리와 모듈을 제공합니다. 그중에서도 Tkinter는 GUI 기반 애플리케이션을 개발하는 데 가장 널리 사용되는 대표적인 파이썬 라이브러리입니다. Tkinter는 버튼, 라벨, 프레임 등 다양한 위젯과 함수를 제공하여 애플리케이션의 화면을 손쉽게 구성할 수 있도록 도와주며, 이를 활용해 특정 작업을 수행하는 버튼 위젯도 간단하게 만들 수 있습니다.
이번 예제에서는 애플리케이션의 밤 모드(Night Mode)와 낮 모드(Day Mode)를 전환하는 토글 버튼을 만들어 보겠습니다. 토글 버튼을 구현하려면 먼저 이미지를 Label(레이블)에 렌더링한 뒤, 버튼과 함께 창의 배경색을 변경하는 함수를 정의해야 합니다.
버튼은 클릭할 때마다 상태가 반복적으로 바뀌어야 하므로, 현재 상태를 추적하는 전역 변수 is_on = True를 선언하여 함수의 동작을 제어합니다. 버튼이 켜진 상태면 이미지를 'off'로 바꾸고 라벨 텍스트를 갱신하며, 꺼진 상태면 다시 'on' 이미지로 되돌리는 방식입니다.
예제 코드
# tkinter 임포트
from tkinter import *
# 윈도우 인스턴스 생성
win = Tk()
# 창 제목 설정
win.title('Toggle Button Demonstration')
# 창 크기 설정
win.geometry("700x400")
win.resizable(0, 0)
# 버튼을 처음에 켜진 상태로 초기화하는 변수
is_on = True
# 메시지를 표시할 라벨 생성
label = Label(win, text="Night Mode is On", bg="white", fg="black", font=("Poppins bold", 22))
label.pack(pady=20)
# 스위치 동작 함수 정의
def button_mode():
global is_on
# 켜짐 또는 꺼짐 여부 판단
if is_on:
on_.config(image=off)
label.config(text="Day Mode is On", bg="white", fg="black")
is_on = False
else:
on_.config(image=on)
label.config(text="Night Mode is On", fg="black")
is_on = True
# 사용할 이미지 정의
on = PhotoImage(file="on.png")
off = PhotoImage(file="off.png")
# 토글 버튼 생성
on_ = Button(win, image=on, bd=0, command=button_mode)
on_.pack(pady=50)
# 윈도우 실행 유지
win.mainloop()실행 결과
위 코드를 실행하면 토글 버튼이 포함된 창이 화면에 나타납니다.

버튼을 클릭하면 버튼 이미지와 라벨 텍스트가 전환되며, 창의 모드가 밤 모드에서 낮 모드로 바뀌는 것을 확인할 수 있습니다.
