`
maplye
  • 浏览: 114614 次
  • 来自: ...
社区版块
存档分类
最新评论

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

根据自己的理解补了一些注释,希望能够看的清楚点...
分享到:
评论

相关推荐

    wxpython实现程序最小到系统托盘的实例

    标题中的“wxpython实现程序最小到系统托盘的实例”是指使用Python的wxPython库来创建一个应用程序,该程序能够最小化到系统托盘区域,而不是传统的任务栏。这是一个非常实用的功能,允许用户将程序隐藏起来,而不会...

    wxpython托盘(最小化)实例

    本实例关注的是如何利用`wxPython`实现应用程序的托盘功能,特别是当用户最小化程序时,将程序图标隐藏到系统托盘区,而不是完全关闭或隐藏程序。 首先,我们需要了解`wxPython`中的`TaskBarIcon`类,这是实现托盘...

    系统托盘程序示例 IP_Manager

    【系统托盘程序示例 IP_Manager】是一款专为学习和研究设计的软件,它展示了如何在Windows操作系统中创建一个系统托盘程序,并实现对本地IP地址的管理功能。这个程序对于开发者,尤其是初学者,提供了深入理解系统...

    商业编程-源码-获得ip地址 剪贴板操作 系统托盘图标实现代码.zip

    在Python中,可以使用`wxPython`或`pyqt`库创建系统托盘图标。源码中这部分内容可能是实现这些功能的具体代码。 总之,这个压缩包提供的源码涵盖了商业编程中常见的实用功能,包括获取IP地址以进行网络通信,剪贴板...

    教你怎么样把程序最小化到托盘

    在编程领域,将程序最小化到系统托盘是提高用户体验的一种常见技巧,它可以使程序在不占用任务栏空间的情况下保持运行。系统托盘,通常位于操作系统界面的右下角,包含许多图标,用户可以通过这些图标与后台运行的...

    trayIcon 托盘工具

    在IT领域,托盘工具(TrayIcon)是一种常见的用户界面设计元素,它允许应用程序在系统托盘(通常位于任务栏右下角)显示图标,从而提供便捷的访问和控制功能。这种技术常用于需要在后台运行或者不占用桌面空间的应用...

    screenshot.zip

    在Python编程中,将应用程序最小化到系统托盘是一项实用的功能,这允许用户在不关闭程序的情况下将其隐藏,从而节省桌面空间。标题中的" screenshot.zip " 提供了一个这样的示例,实现了程序最小化到托盘并结合了...

    LightMusicPlayer项目文档1

    - 系统托盘:将应用程序最小化到系统托盘,以便在后台运行并节省桌面空间。 - “添加音乐至歌单”功能:用户可以将单首或多首歌曲添加到现有的或新建的歌单。 2. **类结构设计** - **Music类**:代表一首歌曲,...

    托盘式截图工具.rar

    这样的工具通常在系统托盘区域隐藏一个图标,用户可以通过点击图标来启动截图,实现对屏幕内容的快速捕捉。 【描述】中的关键词"源码"意味着这个压缩包不仅包含了可执行的截图工具,还提供了程序的源代码。这对于...

    readertray:RSS的跨平台桌面通知

    而ReaderTray正是这样一款针对RSS订阅的实用工具,它提供了一个跨平台的系统托盘通知功能,使得用户能够在Windows、OSX和Linux操作系统上轻松管理自己的订阅。 ReaderTray的核心特性在于其系统托盘通知。当订阅源有...

    浮动窗口范例

    这种设计常见于各种软件和操作系统中,比如即时通讯工具、系统托盘通知、桌面小部件等。浮动窗口允许用户在不关闭主应用的情况下查看或操作额外的信息或功能。 在IT行业中,实现浮动窗口通常涉及以下知识点: 1. *...

    域名解析 根据对方的域名获取对方的IP地址

    在Python中,我们可以使用PyQt5或wxPython等GUI库来创建托盘图标并处理用户交互。下面是一个使用PyQt5的例子: ```python import sys from PyQt5.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QAction ...

    桌面小尺子

    最后,为了让用户更便捷地使用这个工具,"桌面小尺子"通常会设计成常驻任务栏或系统托盘的小图标,只需一键就能快速启动或隐藏尺子。这涉及到操作系统级别的交互,需要了解如何与Windows、MacOS或Linux的系统API进行...

    桌面宠物(Windows-1.0版本).zip

    此外,考虑到这是Windows平台的桌面宠物,开发者可能还使用了特定于Windows系统的API或库,如win32api,来实现更深入的功能,比如系统托盘图标、通知消息等。在打包过程中,可能使用了像py2exe这样的工具将Python...

    python 桌面宠物源码

    桌面宠物可以集成到操作系统中,实现如通知中心显示、托盘图标等功能。Python 的 `subprocess` 和 `psutil` 库可以帮助与操作系统进行交互。 9. **设计与美工**: 要制作一个吸引人的桌面宠物,除了代码实现外,...

    Tkinter编程实例+源码

    Tkinter的核心是Tk接口,它是一个与平台无关的抽象层,用于与窗口系统进行交互。Tkinter通过Tk接口与Tk GUI工具包通信,从而实现跨平台的GUI编程。在Python中,Tkinter的使用通常涉及以下步骤: 1. 导入Tkinter模块...

    完整版浪花-设置透明窗口.e.rar

    例如,Python中可以使用`pywin32`库在Windows上实现,或者使用`PyQt`、`wxPython`等跨平台库;在Java中,可以利用`AWT`或`Swing`的`setOpacity`方法;在C#的.NET Framework中,可以使用`Form`类的`Opacity`属性。 4...

Global site tag (gtag.js) - Google Analytics