wxpython 最小化到托盘与欢迎图片的实现方法

 更新时间:2014年06月09日 21:07:59   作者:  
这篇文章主要分享一个python实例代码,使用wxpython实现最小化到托盘与欢迎图片,需要的朋友可以参考下

一直在学习系统托盘的实现,于是自己写了一个简单的系统托盘实例,右键包括演示、最大化、最小化、退出和关于。在python2.6下测试通过。

注意,本节分享的python实例代码,这里是托盘上的图标弹出菜单是覆盖了CreatePopupMenu。

也可以绑定2个方法,一个wx.EVT_TASKBAR_RIGHT_DOWN,方法里面生成menu,然后再来一个wx.EVT_MENU,定义要处理的事件函数。

还有一个就是Wx窗体上的最小化按钮,触发的事件是 wx.EVT_ICONIZE,而根本就没有定义什么wx.EVT_MINIMIZE,但是最大化,有个wx.EVT_MAXIMIZE。

复制代码 代码如下:

#!/usr/bin/python 
# _*_ coding: utf-8 _*_ 

import wx 
class TaskBarIcon(wx.TaskBarIcon): 
    ID_Hello = wx.NewId() 
    def __init__(self, frame): 
        wx.TaskBarIcon.__init__(self) 
        self.frame = frame 
        self.SetIcon(wx.Icon(name='wx.ico', type=wx.BITMAP_TYPE_ICO), 'TaskBarIcon!') 
        self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnTaskBarLeftDClick) 
        self.Bind(wx.EVT_MENU, self.OnHello, id=self.ID_Hello) 

    def OnTaskBarLeftDClick(self, event): 
        if self.frame.IsIconized(): 
           self.frame.Iconize(False) 
        if not self.frame.IsShown(): 
           self.frame.Show(True) 
        self.frame.Raise() 

    def OnHello(self, event): 
        wx.MessageBox('Hello From TaskBarIcon!', 'Prompt') 

    # override 
    def CreatePopupMenu(self): 
        menu = wx.Menu() 
        menu.Append(self.ID_Hello, 'Hello') 
        return menu 

class Frame(wx.Frame): 
    def __init__( 
            self, parent=None, id=wx.ID_ANY, title='TaskBarIcon', pos=wx.DefaultPosition, 
            size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE 
            ): 
        wx.Frame.__init__(self, parent, id, title, pos, size, style)   

        # create a welcome screen 
        screen = wx.Image(self.screenIm).ConvertToBitmap() 
        wx.SplashScreen(screen, wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,1000, None, -1) 
        wx.Yield() 

        self.SetIcon(wx.Icon('wx.ico', wx.BITMAP_TYPE_ICO)) 
        panel = wx.Panel(self, wx.ID_ANY) 
        button = wx.Button(panel, wx.ID_ANY, 'Hide Frame', pos=(60, 60)) 

        sizer = wx.BoxSizer() 
        sizer.Add(button, 0) 
        panel.SetSizer(sizer) 
        self.taskBarIcon = TaskBarIcon(self)         

        # bind event 
        self.Bind(wx.EVT_BUTTON, self.OnHide, button) 
        self.Bind(wx.EVT_CLOSE, self.OnClose) 
        self.Bind(wx.EVT_ICONIZE, self.OnIconfiy) # 最小化事件绑定 
    def OnHide(self, event): 
        self.Hide() 
    def OnIconfiy(self, event): 
        wx.MessageBox('Frame has been iconized!', 'Prompt') 
        event.Skip() 
    def OnClose(self, event): 
        self.taskBarIcon.Destroy() 
        self.Destroy() 

def TestFrame(): 
    app = wx.PySimpleApp() 
    frame = Frame(size=(640, 480)) 
    frame.Centre() 
    frame.Show() 
    app.MainLoop() 
if __name__ == '__main__': 
    TestFrame()

相关文章

  • PyTorch搭建LSTM实现时间序列负荷预测

    PyTorch搭建LSTM实现时间序列负荷预测

    这篇文章主要为大家介绍了PyTorch搭建LSTM实现时间序列负荷预测,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python实现基于POS算法的区块链

    Python实现基于POS算法的区块链

    这篇文章主要介绍了Python实现基于POS算法的区块链,今天我们就来认识POS(proof of stake)算法。需要的朋友可以参考下
    2018-08-08
  • Python激活Anaconda环境变量的详细步骤

    Python激活Anaconda环境变量的详细步骤

    今天给大家分享Python激活Anaconda环境变量的详细步骤,激活Anaconda环境变量分为简洁版和详细版,简洁版只需要通过输入命令进行配置即可,详细版本文通过图文步骤给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • python嵌套异常的两种处理器

    python嵌套异常的两种处理器

    在Python中,异常也可以嵌套,本文主要介绍了python嵌套异常的两种处理器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • tensorflow常用函数API介绍

    tensorflow常用函数API介绍

    这篇文章主要介绍了tensorflow常用函数API介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • python数据挖掘使用Evidently创建机器学习模型仪表板

    python数据挖掘使用Evidently创建机器学习模型仪表板

    在本文中,我们将探索 Evidently 并创建交互式报告/仪表板。有需要的朋友欢迎大家收藏学习,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • python末尾逗号导致返回结果是一个元组的问题

    python末尾逗号导致返回结果是一个元组的问题

    在Python中,除非特别需要返回或传参元组,一般不推荐在语句末尾添加逗号,应该注意检查是否存在末尾逗号导致的这些副作用,这篇文章主要介绍了python末尾逗号导致返回结果是一个元组,需要的朋友可以参考下
    2023-09-09
  • 在PyCharm环境中使用Jupyter Notebook的两种方法总结

    在PyCharm环境中使用Jupyter Notebook的两种方法总结

    今天小编就为大家分享一篇在PyCharm环境中使用Jupyter Notebook的两种方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python利用os模块实现自动删除磁盘文件

    Python利用os模块实现自动删除磁盘文件

    你们一定想不到os模块还可以这样玩,本文就将利用Python中的os模块实现自动删除磁盘文件功能,文中的示例代码讲解详细,感兴趣的可以尝试一下
    2022-11-11
  • Python if语句知识点用法总结

    Python if语句知识点用法总结

    本篇文章给python初学者总结了关于Python之if语句的相关用法以及知识点总结,跟着学习下吧。
    2018-06-06

最新评论