wxPython como applet

Catalin Lungu lcatalin en siadv.com
Jue Feb 17 08:19:59 CET 2005


Hola,
Para Windows yo uso esto, no veo porque no funcionaria en Linux.

from wxPython.wx import *

ICON_STATE = 0
BLINK_STATE = 0

ID_ICON_TIMER = 1000
class TaskBarApp(wxFrame):
    def __init__(self, parent, id, title):
        wxFrame.__init__(self, parent, -1, title, size = (1, 1),
            style=wxFRAME_NO_TASKBAR|wxNO_FULL_REPAINT_ON_RESIZE)
        self.tbicon = wxTaskBarIcon()
        icon = wxIcon('1.ico', wxBITMAP_TYPE_ICO)
        self.tbicon.SetIcon(icon, '')
        EVT_TASKBAR_LEFT_DCLICK(self.tbicon, self.OnTaskBarLeftDClick)
        EVT_TASKBAR_RIGHT_UP(self.tbicon, self.OnTaskBarRightClick)
        self.Show(true)

    def OnTaskBarLeftDClick(self, evt):
        global ICON_STATE
        try:
            self.icontimer.Stop()
        except:
            pass
        if ICON_STATE == 1:
            icon = wxIcon('1.ico', wxBITMAP_TYPE_ICO)
            self.tbicon.SetIcon(icon, 'Yellow')
            ICON_STATE = 0
        else:
            self.SetIconTimer()
            ICON_STATE = 1

    def OnTaskBarRightClick(self, evt):
        self.Close(true)
        wxGetApp().ProcessIdle()

    def SetIconTimer(self):
        self.icontimer = wxTimer(self, ID_ICON_TIMER)
        EVT_TIMER(self, ID_ICON_TIMER, self.BlinkIcon)
        self.icontimer.Start(1000)

    def BlinkIcon(self, evt):
        global BLINK_STATE
        if BLINK_STATE == 0:
            icon = wxIcon('2.ico', wxBITMAP_TYPE_ICO)
            self.tbicon.SetIcon(icon, 'Red')
            BLINK_STATE = 1
        else:
            icon = wxIcon('3.ico', wxBITMAP_TYPE_ICO)
            self.tbicon.SetIcon(icon, 'Black')
            BLINK_STATE = 0

class MyApp(wxApp):
    def OnInit(self):
        frame = TaskBarApp(None, -1, ' ')
        frame.Center(wxBOTH)
        frame.Show(false)
        return true

def main():
    app = MyApp(0)
    app.MainLoop()

if __name__ == '__main__':
    main()

Saludos,
Catalin




Más información sobre la lista de distribución Python-es