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()

    根据自己的理解补了一些注释,希望能够看的清楚点...
  • 相关阅读:
    RDD(弹性分布式数据集)的分析
    Spark 开发环境搭建
    本地yum仓库的配置安装
    Java使用PDFBox操作PDF文件获取页码、文章内容、缩略图
    利用bdb实现持久化队列
    SQL查询重复记录
    SQL删除某个时间段的数据
    JAVA文件读取和解析
    多线程
    DOC解析xml
  • 原文地址:https://www.cnblogs.com/maplye/p/360194.html
Copyright © 2011-2022 走看看