wxPython创建系统托盘

本文介绍了一种使用wxPython实现在Windows系统任务栏上显示图标并使其闪烁的方法。通过创建自定义的wx.Frame子类TaskBarApp来管理图标的状态变化,并利用定时器控制图标在不同颜色间切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自:
http://wiki.wxpython.org/index.cgi/FlashingTaskbarIcon

完整代如下:
None.gif # 导入wxPython模块
None.gif
from  wxPython.wx  import   *
None.gif
None.gifICON_STATE 
=  0
None.gifBLINK_STATE 
=  0
None.gif
None.gifID_ICON_TIMER 
=   1000
None.gif
# 创建继承wxFrame的类
None.gif
class  TaskBarApp(wxFrame):
None.gif    
def   __init__ (self, parent, id, title):
None.gif    
# 构造一窗体
None.gif
    wxFrame. __init__ (self, parent,  - 1 , title, size  =  ( 1 1 ),style = wxFRAME_NO_TASKBAR | wxNO_FULL_REPAINT_ON_RESIZE)
None.gif        
None.gif    
# 创建系统托盘ICO对象并赋给tbicon
None.gif
    self.tbicon  =  wxTaskBarIcon()
None.gif        
None.gif    icon 
=  wxIcon( ' bb_yellow.ico ' , wxBITMAP_TYPE_ICO)
None.gif
None.gif    self.tbicon.SetIcon(icon, 
'' )
None.gif
None.gif    
# 绑定一些事件
None.gif
    EVT_TASKBAR_LEFT_DCLICK(self.tbicon, self.OnTaskBarLeftDClick)
None.gif    EVT_TASKBAR_RIGHT_UP(self.tbicon, self.OnTaskBarRightClick)
None.gif    self.Show(true)
None.gif
None.gif    
# 左键双击事件的处理方法
None.gif
     def  OnTaskBarLeftDClick(self, evt):
None.gif        
global  ICON_STATE
None.gif        
try :
None.gif            self.icontimer.Stop()
None.gif        
except :
None.gif            
pass
None.gif        
if  ICON_STATE  ==   1 :
None.gif            icon 
=  wxIcon( ' bb_yellow.ico ' , wxBITMAP_TYPE_ICO)
None.gif            self.tbicon.SetIcon(icon, 
' Yellow ' )
None.gif            ICON_STATE 
=  0
None.gif        
else :
None.gif            self.SetIconTimer()
None.gif            ICON_STATE 
=   1
None.gif
None.gif    
# 右键单击处理方法
None.gif
     def  OnTaskBarRightClick(self, evt):
None.gif        self.Close(true)
None.gif        wxGetApp().ProcessIdle()
None.gif
None.gif    
def  SetIconTimer(self):
None.gif        self.icontimer 
=  wxTimer(self, ID_ICON_TIMER)
None.gif        EVT_TIMER(self, ID_ICON_TIMER, self.BlinkIcon)
None.gif        self.icontimer.Start(
1000 )
None.gif
None.gif    
def  BlinkIcon(self, evt):
None.gif        
global  BLINK_STATE
None.gif        
if  BLINK_STATE  ==  0:
None.gif            icon 
=  wxIcon( ' bb_red.ico ' , wxBITMAP_TYPE_ICO)
None.gif            self.tbicon.SetIcon(icon, 
' Red ' )
None.gif            BLINK_STATE 
=   1
None.gif        
else :
None.gif            icon 
=  wxIcon( ' bb_black.ico ' , wxBITMAP_TYPE_ICO)
None.gif            self.tbicon.SetIcon(icon, 
' Black ' )
None.gif            BLINK_STATE 
=  0
None.gif
None.gif
# 创建App类
None.gif
class  MyApp(wxApp):
None.gif    
def  OnInit(self):
None.gif        frame 
=  TaskBarApp(None,  - 1 '   ' )
None.gif        frame.Center(wxBOTH)
None.gif        frame.Show(false)
None.gif        
return  true
None.gif
# run
None.gif
def  main():
None.gif    app 
=  MyApp(0)
None.gif    app.MainLoop()
None.gif
if   __name__   ==   ' __main__ ' :
None.gif    main()

根据自己的理解补了一些注释,希望能够看的清楚点...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值