I have App class and I want to call "change_icon" definition from inside App class. In current situation it is only can be triggered with menu item of pystray.
Below is my code:
from pystray import MenuItem as item
import pystray
from PIL import Image
import tkinter as tk
class App:
def __init__(self, window):
self.window = window
self.window.title("Welcome")
def quit_window(icon, item):
icon.stop()
window.destroy()
def change_icon(icon, item):
icon.icon = Image.open("icon_notification.ico")
def show_window(icon, item):
icon.stop()
window.after(0,window.deiconify)
def withdraw_window():
window.withdraw()
image = Image.open("icon.ico")
menu = (item('Quit', quit_window), item('Show', show_window), item("Change Icon", change_icon))
icon = pystray.Icon("name", image, "title", menu)
icon.run()
if __name__ == "__main__":
window = tk.Tk()
App(window)
window.protocol('WM_DELETE_WINDOW', withdraw_window)
window.mainloop()