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

Tkinter 애플리케이션에서 시스템 트레이 아이콘을 만드는 방법

시스템 트레이 아이콘은 작업표시줄에서 애플리케이션의 실행 상태를 보여주는 역할을 합니다. 일반적으로 현재 어떤 프로그램이 실행 중인지 표시하며, 작업표시줄 우측 하단 트레이 영역에 아이콘이 나타납니다.

Tkinter로 만든 애플리케이션에 시스템 트레이 아이콘을 추가하려면 Python의 pystray 모듈을 사용할 수 있습니다. 이 모듈은 트레이 아이콘을 구성하고 제어하는 데 필요한 다양한 내장 함수와 메서드를 제공합니다.

pystray를 설치하려면 셸 또는 명령 프롬프트에서 다음 명령어를 입력하세요.

pip install pystray

시스템 트레이 아이콘 만들기 단계

  • 필요한 라이브러리를 임포트합니다 — pystray, 그리고 이미지 처리를 위한 PIL(Pillow).

  • 창을 숨기고 시스템 트레이에 아이콘을 표시하는 hide_window() 함수를 정의합니다.

  • 트레이 아이콘의 메뉴 항목으로 "Show"(창 다시 열기)와 "Quit"(종료) 두 가지를 추가하고 정의합니다.

  • Show와 Quit 각각의 동작을 수행하는 함수를 정의하여 메뉴 항목에 연결합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from pystray import MenuItem as item
import pystray
from PIL import Image, ImageTk

# Tkinter 프레임 또는 윈도우 인스턴스 생성
win = Tk()
win.title("System Tray Application")

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

# 창을 종료하는 함수 정의
def quit_window(icon, item):
    icon.stop()
    win.destroy()

# 창을 다시 표시하는 함수 정의
def show_window(icon, item):
    icon.stop()
    win.after(0, win.deiconify())

# 창을 숨기고 작업표시줄(시스템 트레이)에 아이콘 표시
def hide_window():
    win.withdraw()
    image = Image.open("favicon.ico")
    menu = (item('Quit', quit_window), item('Show', show_window))
    icon = pystray.Icon("name", image, "My System Tray Icon", menu)
    icon.run()

win.protocol('WM_DELETE_WINDOW', hide_window)

win.mainloop()

실행 결과

위 코드를 실행하면 먼저 다음과 같은 윈도우가 화면에 나타납니다.

Tkinter 애플리케이션에서 시스템 트레이 아이콘을 만드는 방법

윈도우의 닫기(X) 버튼을 누르면 프로그램이 종료되지 않고, 대신 창이 숨겨진 상태로 작업표시줄의 시스템 트레이 아이콘으로 전환됩니다.

Tkinter 애플리케이션에서 시스템 트레이 아이콘을 만드는 방법

트레이 아이콘을 마우스 오른쪽 버튼으로 클릭하면 "Show" 메뉴로 창을 다시 띄우거나, "Quit" 메뉴로 프로그램을 완전히 종료할 수 있습니다.