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