如何使 Tkinter 窗口出现在任务栏中?

tkinterpythongui-programming更新于 2025/9/14 13:00:17

系统托盘应用程序始终在任务栏上创建。每当用户关闭应用程序时,它都会在任务栏上运行其状态。为了识别系统托盘应用程序,我们可以为其应用程序提供图像或图标。

要创建 Tkinter 应用程序的系统托盘图标,我们可以使用 Python 中的 pystray 模块。它有许多内置函数和方法可用于配置应用程序的系统托盘图标。

要在您的机器上安装 pystray,您可以在 shell 或命令提示符中键入 "pip install pystray" 命令。

要创建系统托盘图标,您可以按照下面给出的步骤 −

  • 导入所需的库 − Pystray, Python 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("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()

输出

如果我们运行上述代码,它将显示应用程序窗口,其中包含一些小部件和元素。

如果我们关闭窗口,它将在任务栏菜单中显示窗口图标。


相关文章


有用资源