如何制作托盘图标#

托盘图标,是位于任务栏右侧的那些任务,以图标图标形式出现,点击后一般可以显示被隐藏的窗口。 tkinter没有制作这种托盘图标,但是有个叫做winico的扩展库出现,可以制作托盘图标。


安装winico#

我们可以使用我开发的tkinterDev,它可以快速地安装winico

from tkdev4 import download_winico
download_winico()

我将winico地压缩包发到个人的网站,并改了文件名,叫做Winico64,因为原来的压缩包有空格,没找到解决办法,就重新改了个名。 他会安装压缩包到临时文件内,然后解压到tcl文件夹里面,这样就可以使用tk.call调用winico了。

使用winico#

我们使用前,需要创建个Tk窗口才行,然后再创建托盘图标,使用show()显示图标

from tkinter import Tk
from tkdev4 import DevTray

Root = Tk()
Tray = DevTray(Root)
Tray.show()
Root.mainloop()

运行后你就能看到托盘图标了。

扩展#

我们还可以对系统托盘的菜单进行改动

from tkinter import Tk, Menu
from tkdev4 import DevTray
from tkdev4.devtcl import WM_RBUTTONDOWN, ICON_MODE_LOAD, ICON_APPLICATION

Root = Tk()


def popup(event, icon, x, y):
    if event == WM_RBUTTONDOWN:
        menu = Menu(tearoff=False)
        menu.add_command(label="控制台发送“你好”", command=lambda: print("你好"))
        menu.add_separator()
        menu.add_command(label="退出应用程序", command=Root.quit)
        menu.tk_popup(x, y)


Tray = DevTray(Root, menu_func=popup, icon=ICON_APPLICATION, icon_mode=ICON_MODE_LOAD)
Tray.show()
Root.mainloop()