본문 바로가기

개발/Python

[Python] pystray 사용법

반응형

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. 여러 가지 트레이 아이콘 활용 예시

파이썬으로 트레이 아이콘을 활용하여 다양한 프로그램을 만들 수 있습니다. 예를 들어, 트레이 아이콘을 사용하여 백그라운드에서 실행되는 프로그램의 상태를 표시하거나, 특정 작업을 실행하는 트리거로 활용할 수 있습니다.

  • 백그라운드에서 실행되는 서비스 모니터링: 시스템 트레이 아이콘을 통해 서버나 네트워크 상태를 확인하거나 모니터링하는 서비스를 제공할 수 있습니다.
  • 알림 시스템: 트레이 아이콘을 사용하여 사용자에게 알림을 제공하거나 진행 상황을 표시할 수 있습니다.
  • 자동화된 작업 트리거: 특정 트레이 아이콘을 클릭하여 스크립트나 명령어를 실행하거나, 자동화를 시작할 수 있습니다.
반응형