我正在构建一个 tkinter gui 项目,并且正在寻找使用 tkinter 窗口运行托盘图标的方法。
我发现 Pystray 库可以做到这一点,但现在我正在尝试弄清楚如何将这个库(托盘图标)与 tkinter 窗口一起使用,
我设置了当用户退出窗口时它只会退出窗口:
self.protocol('WM_DELETE_WINDOW', self.withdraw)
我想用托盘图标将其带回来..有人知道该怎么做吗?
编辑:到目前为止,我刚刚编写了这段代码(它们没有一起运行,但也很好):
from pystray import MenuItem as item
import pystray
from PIL import Image
import tkinter as tk
def quit_window(icon, item):
icon.stop()
#window.destroy()
def show_window(icon, item):
icon.stop()
#window.deiconify()
def withdraw_window(window):
window.withdraw()
image = Image.open("image.ico")
menu = (item('Quit', quit_window), item('Show', show_window))
icon = pystray.Icon("name", image, "title", menu)
icon.run()
def main():
window = tk.Tk()
window.title("Welcome")
window.protocol('WM_DELETE_WINDOW', lambda: withdraw_window(window))
window.mainloop()
main()
终于我明白了
现在我只需要把它与我的主要代码结合起来,我希望这个代码也对其他人有帮助......
from pystray import MenuItem as item
import pystray
from PIL import Image
import tkinter as tk
window = tk.Tk()
window.title("Welcome")
def quit_window(icon, item):
icon.stop()
window.destroy()
def show_window(icon, item):
icon.stop()
window.after(0,window.deiconify)
def withdraw_window():
window.withdraw()
image = Image.open("image.ico")
menu = (item('Quit', quit_window), item('Show', show_window))
icon = pystray.Icon("name", image, "title", menu)
icon.run()
window.protocol('WM_DELETE_WINDOW', withdraw_window)
window.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)