Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Làm cho cửa sổ Tkinter xuất hiện trên taskbar (System Tray)

System Tray app chạy ngầm trên taskbar. Đóng cửa sổ → app vẫn chạy trên taskbar. Dùng module pystray + PIL/Pillow.

Cài đặt: pip install pystray pillow.

Các bước

  • Import: Pystray, PIL
  • Hàm hide_window(): withdraw window, tạo system tray icon
  • Menu items: "Show", "Quit" với command functions

Ví dụ

from tkinter import *
from pystray import MenuItem as item
import pystray
from PIL import Image, ImageTk

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("image.ico")
    menu = (item('Quit', quit_window), item('Show', show_window))
    icon = pystray.Icon("name", image, "title", menu)
    icon.run()

win.protocol('WM_DELETE_WINDOW', hide_window)
win.mainloop()

Kết quả

Cửa sổ app bình thường. Click nút close (X) → cửa sổ ẩn, icon xuất hiện system tray. Right-click tray icon → menu Show/Quit.

Làm cho cửa sổ Tkinter xuất hiện trên taskbar (System Tray)

Lưu ý: Cần file image.ico icon. win.withdraw() ẩn cửa sổ, win.deiconify() hiện lại. protocol('WM_DELETE_WINDOW') override hành vi nút X.