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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2289544.html

(0)
上一篇 2025年2月27日 23:52:05
下一篇 2025年2月22日 18:38:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • wxPython中文教程入门实例

    wxPython中文教程入门实例 wx.Window 是一个基类,许多构件从它继承。包括 wx.Frame 构件。可以在所有的子类中使用 wx.Window 的方法。 wxPython的几种方法:* SetTitle( string tit…

    编程技术 2025年2月27日
    200
  • wxpython中自定义事件的实现与使用方法分析

    本文实例讲述了wxpython中自定义事件的实现与使用方法。分享给大家供大家参考,具体如下: 创建自定义事件的步骤: ① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数。 ② …

    编程技术 2025年2月27日
    200
  • wxpython中Textctrl回车事件无效的解决方法

    本文实例讲述了wxpython中textctrl回车事件无效的解决方法。分享给大家供大家参考,具体如下: 今天使用wxptyhon的Textctrl控件开发客户端时遇到了一个问题, 按照HTML表单的逻辑, 我们在Textctrl里回车应该…

    编程技术 2025年2月27日
    200
  • Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程

    python是支持可视化编程,即编写gui程序,你可以用它来编写自己喜欢的桌面程序。使用wxpython来做界面非常的简单,只是不能像c#一样拖动控件,需要自行写代码布局。在完成编写之后,由于直接的py文件不能再没有安装python的电脑上…

    2025年2月27日
    200
  • 使用wxPython制作一个有趣的验证码生成器:从零开始

    1.引言 2.正文 CAPTCHA的应用场景主要是在需要验证用户身份或者防止恶意攻击的场景中,下面列举几个常见的应用场景: 用户登录验证:在用户登录时使用CAPTCHA来防止自动化机器人登录账户。 网站注册验证:使用CAPTCHA来防止自动…

    2025年2月26日
    200
  • Python中的GUI库wxPython详解

    python是一种简洁、易学、高效的编程语言。它广泛应用于各种领域,如数据科学、人工智能、游戏开发、网络编程等。虽然python自带有一些gui库,但他们的功能较为简单,无法满足各类复杂应用的需求。因此,python中有许多gui库可供选择…

    编程技术 2025年2月26日
    200
  • Python中的GUI库有哪些选择?

    Python是一种简单易学、功能强大的编程语言,适用于各种领域的开发。在Python中,有多种图形用户界面(GUI)库可供选择,可以帮助开发人员创建交互式的桌面应用程序。本文将介绍一些常用的Python GUI库,并提供具体的代码示例。 T…

    2025年2月26日
    200
  • 如何在word2010的文档窗口进行最小化操作?

    操作步骤:1、打开Word文档,在文档的右上角可以看到三个图标,从左到右依次是“最小化”、“最大化”和“关闭”图标;2、点击“最小化”图标即可。 如何在word2010的文档窗口进行最小化操作? 操作步骤: 1、首先我们打开word2010…

    2025年2月22日 互联网
    200
  • 烤箱托盘糊了很硬清理怎么办

    烤箱托盘糊了变得很硬是很难清洗的,如果你不知道怎么清洗最方便,可以看看本站提供的小妙招,其实有很多种方法清洗托盘,可以让它完好如初,所以千万别错过这篇文章带来的内容哦! 烤箱托盘糊了很硬清理怎么办 首先,我们取出内部的可拆卸部分,然后用蘸有…

    2025年1月19日
    424.8K00
  • 浇完花托盘里的水用倒掉吗

    花盆是我们养花的必须,花盆的材质有很多,比如塑料的、陶瓷的、紫砂的等等。花盆有的会带孔带托盘,有的则是全封闭的,一般我们建议选择底部带孔的花盆,这样植物的根系可以得到透气,浇水较多了也不用担心会淹根,因为多余的水会从托盘里流出来。那么浇花之…

    2024年12月22日
    332.0K00

发表回复

登录后才能评论