python tkinter 窗口最小化托盘代码
时间: 2023-07-22 08:40:30 浏览: 159
python tkinter窗口最大化的实现
下面是一个 Python Tkinter 窗口最小化到系统托盘的示例代码:
```python
import tkinter as tk
import tkinter.messagebox
import os
# 导入第三方库 pystray,用于实现系统托盘图标
import pystray
from PIL import Image, ImageTk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title("最小化到托盘示例")
self.geometry("300x200")
self.protocol("WM_DELETE_WINDOW", self.on_closing)
self.iconbitmap("icon.ico")
# 创建托盘图标
self.create_tray_icon()
def create_tray_icon(self):
# 创建托盘图标
icon = Image.open("icon.ico")
menu = (pystray.MenuItem("打开", self.show_window),
pystray.MenuItem("退出", self.quit_app))
self.tray_icon = pystray.Icon("name", icon, "title", menu)
self.tray_icon.run()
def show_window(self):
# 显示窗口并恢复
self.deiconify()
self.tray_icon.stop()
def hide_window(self):
# 隐藏窗口并最小化到托盘
self.withdraw()
self.tray_icon.visible = True
def on_closing(self):
# 关闭窗口时最小化到托盘
tkinter.messagebox.showinfo("提示", "程序最小化到系统托盘")
self.hide_window()
def quit_app(self):
# 退出程序
self.tray_icon.stop()
self.quit()
if __name__ == "__main__":
app = App()
app.mainloop()
```
在上面的示例代码中,我们使用了第三方库 pystray 来实现系统托盘图标的功能。在 `create_tray_icon` 方法中,我们通过传入图标文件路径和菜单选项来创建托盘图标,然后使用 `run` 方法将其运行起来。在 `show_window` 和 `hide_window` 方法中,我们分别实现了窗口的显示和最小化到托盘的功能。在 `on_closing` 方法中,我们重写了窗口关闭事件,使其在关闭窗口时最小化到托盘。在 `quit_app` 方法中,我们实现了退出程序的功能,并使用 `stop` 方法停止托盘图标的运行。
阅读全文