zoukankan      html  css  js  c++  java
  • wxPython创建系统托盘

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

    完整代如下:
    #导入wxPython模块
    from wxPython.wx import *

    ICON_STATE 
    = 0
    BLINK_STATE 
    = 0

    ID_ICON_TIMER 
    = 1000
    #创建继承wxFrame的类
    class TaskBarApp(wxFrame):
        
    def __init__(self, parent, id, title):
        
    #构造一窗体
        wxFrame.__init__(self, parent, -1, title, size = (11),style=wxFRAME_NO_TASKBAR|wxNO_FULL_REPAINT_ON_RESIZE)
            
        
    #创建系统托盘ICO对象并赋给tbicon
        self.tbicon = wxTaskBarIcon()
            
        icon 
    = wxIcon('bb_yellow.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('bb_yellow.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('bb_red.ico', wxBITMAP_TYPE_ICO)
                self.tbicon.SetIcon(icon, 
    'Red')
                BLINK_STATE 
    = 1
            
    else:
                icon 
    = wxIcon('bb_black.ico', wxBITMAP_TYPE_ICO)
                self.tbicon.SetIcon(icon, 
    'Black')
                BLINK_STATE 
    = 0

    #创建App类
    class MyApp(wxApp):
        
    def OnInit(self):
            frame 
    = TaskBarApp(None, -1' ')
            frame.Center(wxBOTH)
            frame.Show(false)
            
    return true
    #run
    def main():
        app 
    = MyApp(0)
        app.MainLoop()
    if __name__ == '__main__':
        main()

    根据自己的理解补了一些注释,希望能够看的清楚点...
  • 相关阅读:
    C#呓语
    引起超时的原因及表解锁的方法<转>
    如何使用数据库引擎优化顾问优化数据库 <转>
    缩短IIS应用池回收时间,减少IIS假死<转>
    Microsoft Silverlight 4 Tools for Visual Studio 2010中文版本
    系统统一验证(IHttpHandlerFactory)<转>
    解决CSS BUG的顺口溜<转>
    重建索引提高SQL Server性能<转>
    .NET调用osql.exe执行sql脚本创建表和存储过程<转>
    SQL SERVER性能优化综述<转>
  • 原文地址:https://www.cnblogs.com/maplye/p/360194.html
Copyright © 2011-2022 走看看