pystray는 파이썬으로 시스템 트레이(작업 표시줄) 아이콘을 쉽게 추가하고, 클릭, 우클릭과 같은 이벤트를 처리할 수 있도록 도와주는 라이브러리입니다. 이 글에서는 pystray
의 설치부터 다양한 사용법까지 소개합니다.
1. pystray 설치하기
먼저, pystray를 설치해야 합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 실행하세요:
pip install pystray
2. pystray 기본 사용법
시스템 트레이에 아이콘을 추가하는 기본적인 코드 예제를 소개합니다. 아래 코드는 파란색 사각형 아이콘을 만들고, 아이콘을 우클릭했을 때 "Quit" 항목을 제공하여 아이콘을 종료합니다.
from pystray import Icon, MenuItem, Menu from PIL import Image, ImageDraw import sys # 트레이 아이콘을 만들기 위한 이미지 생성 def create_image(): image = Image.new('RGB', (64, 64), color=(255, 255, 255)) draw = ImageDraw.Draw(image) draw.rectangle((0, 0, 64, 64), fill="blue") return image # 아이콘 클릭 시 이벤트 처리 함수 def on_quit(icon, item): icon.stop() # 아이콘 종료 print("아이콘이 종료되었습니다.") # 트레이 메뉴 생성 menu = Menu(MenuItem('Quit', on_quit)) # 트레이 아이콘 생성 icon = Icon("test", create_image(), menu=menu) # 아이콘 실행 icon.run()
설명
위 코드는 파란색 사각형 아이콘을 생성하고, 시스템 트레이에 표시합니다. 우클릭하면 "Quit" 메뉴가 나타나고, 이를 클릭하면 아이콘이 종료됩니다. create_image()
함수는 아이콘 이미지를 생성하는 역할을 합니다.
3. 트레이 아이콘 메뉴와 여러 가지 이벤트 처리
이번에는 트레이 아이콘을 클릭했을 때 여러 가지 작업을 수행할 수 있는 예제를 보여드립니다. 메뉴에는 "Quit", "Show Message", "Change Color"라는 옵션을 추가하여 각 옵션에 맞는 동작을 처리합니다.
from pystray import Icon, MenuItem, Menu from PIL import Image, ImageDraw import sys # 트레이 아이콘을 만들기 위한 이미지 생성 def create_image(): image = Image.new('RGB', (64, 64), color=(255, 255, 255)) draw = ImageDraw.Draw(image) draw.rectangle((0, 0, 64, 64), fill="green") return image # 아이콘 클릭 시 이벤트 처리 함수들 def on_quit(icon, item): icon.stop() print("프로그램 종료") def on_show_message(icon, item): print("메시지를 표시합니다!") def on_change_color(icon, item): print("아이콘 색상을 변경합니다!") # 트레이 메뉴 생성 menu = Menu( MenuItem('Quit', on_quit), MenuItem('Show Message', on_show_message), MenuItem('Change Color', on_change_color) ) # 트레이 아이콘 생성 icon = Icon("test", create_image(), menu=menu) # 아이콘 실행 icon.run()
설명
위 예제에서는 "Quit", "Show Message", "Change Color"라는 세 가지 메뉴 항목을 설정하고, 각 항목을 클릭할 때 다른 함수가 실행됩니다. 이를 통해 트레이 아이콘을 클릭한 후 다양한 작업을 처리할 수 있습니다.
4. 아이콘 색상 변경하기
아이콘을 클릭했을 때 색상을 변경할 수도 있습니다. 아래 예제는 아이콘 색상을 빨간색으로 변경하는 기능을 구현한 코드입니다.
def change_icon_color(icon, new_color): # 새 색상으로 아이콘 이미지 생성 image = Image.new('RGB', (64, 64), color=new_color) draw = ImageDraw.Draw(image) draw.rectangle((0, 0, 64, 64), fill=new_color) icon.icon = image # 아이콘 색상 변경 def on_change_color(icon, item): change_icon_color(icon, (255, 0, 0)) # 빨간색으로 변경 print("아이콘 색상이 빨간색으로 변경되었습니다.")
설명
위 코드는 아이콘의 색상을 동적으로 변경하는 방법을 보여줍니다. change_icon_color() 함수는 새로운 색상을 받아 아이콘 이미지를 갱신하고, 이를 시스템 트레이 아이콘으로 적용합니다.
5. 여러 가지 트레이 아이콘 활용 예시
파이썬으로 트레이 아이콘을 활용하여 다양한 프로그램을 만들 수 있습니다. 예를 들어, 트레이 아이콘을 사용하여 백그라운드에서 실행되는 프로그램의 상태를 표시하거나, 특정 작업을 실행하는 트리거로 활용할 수 있습니다.
- 백그라운드에서 실행되는 서비스 모니터링: 시스템 트레이 아이콘을 통해 서버나 네트워크 상태를 확인하거나 모니터링하는 서비스를 제공할 수 있습니다.
- 알림 시스템: 트레이 아이콘을 사용하여 사용자에게 알림을 제공하거나 진행 상황을 표시할 수 있습니다.
- 자동화된 작업 트리거: 특정 트레이 아이콘을 클릭하여 스크립트나 명령어를 실행하거나, 자동화를 시작할 수 있습니다.