You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
2 years ago
|
import wx.adv
|
||
|
import wx
|
||
|
TRAY_TOOLTIP = 'Name'
|
||
|
TRAY_ICON = 'icon.png'
|
||
|
|
||
|
|
||
|
def create_menu_item(menu, label, func):
|
||
|
item = wx.MenuItem(menu, -1, label)
|
||
|
menu.Bind(wx.EVT_MENU, func, id=item.GetId())
|
||
|
menu.Append(item)
|
||
|
return item
|
||
|
|
||
|
|
||
|
class TaskBarIcon(wx.adv.TaskBarIcon):
|
||
|
def __init__(self, frame):
|
||
|
self.frame = frame
|
||
|
super(TaskBarIcon, self).__init__()
|
||
|
self.set_icon(TRAY_ICON)
|
||
|
self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN, self.on_left_down)
|
||
|
|
||
|
def CreatePopupMenu(self):
|
||
|
menu = wx.Menu()
|
||
|
create_menu_item(menu, 'Site', self.on_hello)
|
||
|
menu.AppendSeparator()
|
||
|
create_menu_item(menu, 'Exit', self.on_exit)
|
||
|
return menu
|
||
|
|
||
|
def set_icon(self, path):
|
||
|
icon = wx.Icon(path)
|
||
|
self.SetIcon(icon, TRAY_TOOLTIP)
|
||
|
|
||
|
def on_left_down(self, event):
|
||
|
print ('Tray icon was left-clicked.')
|
||
|
|
||
|
def on_hello(self, event):
|
||
|
print ('Hello, world!')
|
||
|
|
||
|
def on_exit(self, event):
|
||
|
wx.CallAfter(self.Destroy)
|
||
|
self.frame.Close()
|
||
|
|
||
|
class App(wx.App):
|
||
|
def OnInit(self):
|
||
|
frame=wx.Frame(None)
|
||
|
self.SetTopWindow(frame)
|
||
|
TaskBarIcon(frame)
|
||
|
return True
|
||
|
|
||
|
def main():
|
||
|
app = App(False)
|
||
|
app.MainLoop()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|