Python在哪里放置while循环wx.python systray

时间:2015-02-13 16:34:26

标签: python loops while-loop wxpython

我遇到了一个问题,想知道在哪里放置一个while循环我已经把这个东西移动了几次我遇到的问题。

  1. 多个系统托管图标和正在运行的实例
  2. 无法拉出系统托盘菜单,因此没有退出功能
  3. 如果我不允许MainLoop执行等,则没有图标
  4. import wx
    import time
    
    TRAY_TOOLTIP = 'Connector Error Discovery'
    TRAY_ICON = 'image.jpg'
    
    def create_menu_item(menu, label, func):
      item = wx.MenuItem(menu, -1, label)
      menu.Bind(wx.EVT_MENU, func, id=item.GetId())
      menu.AppendItem(item)
      return item
    
    class TaskBarIcon(wx.TaskBarIcon):
      def __init__(self):
        super(TaskBarIcon, self).__init__()
        self.set_icon(TRAY_ICON)
        self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.on_left_down)
    
      def CreatePopupMenu(self):
        menu = wx.Menu()
        create_menu_item(menu, 'Exit', self.on_exit)
        return menu
    
      def set_icon(self, path):
        icon = wx.IconFromBitmap(wx.Bitmap(path))
        self.SetIcon(icon, TRAY_TOOLTIP)
    
      def on_left_down(self, event):
        print 'Tray icon was left-clicked.'
    
      def on_exit(self, event):
        wx.CallAfter(self.Destroy)
    
    def looping():
      while 1:
        time.sleep(5)
        print 'hi'
    
    def main():
      app = wx.PySimpleApp()
      TaskBarIcon()
      app.MainLoop(looping())
    
    if __name__ == '__main__':
      main()

1 个答案:

答案 0 :(得分:0)

如果我完全删除了函数循环,它就可以了。

我不明白你在循环中尝试做什么,但你肯定做错了。