python中wx将图标显示在右下角的脚本代码

 更新时间:2013年03月08日 12:11:08   作者:  
python中wx将图标显示在右下脚的代码,此程序摘自wxdemo,不够完善,只供参考用

复制代码 代码如下:

import wx
import images
class DemoTaskBarIcon(wx.TaskBarIcon):
    TBMENU_RESTORE = wx.NewId()
    TBMENU_CLOSE   = wx.NewId()
    TBMENU_CHANGE  = wx.NewId()
    TBMENU_REMOVE  = wx.NewId()

    def __init__(self, frame):
        wx.TaskBarIcon.__init__(self)
        self.frame = frame

        # Set the image
        icon = self.MakeIcon(images.getWXPdemoImage())
        self.SetIcon(icon, "wxPython Demo")
        self.imgidx = 1

        # bind some events
        self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnTaskBarActivate)
        self.Bind(wx.EVT_MENU, self.OnTaskBarActivate, id=self.TBMENU_RESTORE)
        self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=self.TBMENU_CLOSE)
        self.Bind(wx.EVT_MENU, self.OnTaskBarChange, id=self.TBMENU_CHANGE)
        self.Bind(wx.EVT_MENU, self.OnTaskBarRemove, id=self.TBMENU_REMOVE)


    def CreatePopupMenu(self):
        """
        This method is called by the base class when it needs to popup
        the menu for the default EVT_RIGHT_DOWN event.  Just create
        the menu how you want it and return it from this function,
        the base class takes care of the rest.
        """
        menu = wx.Menu()
        menu.Append(self.TBMENU_RESTORE, "Restore wxPython Demo")
        menu.Append(self.TBMENU_CLOSE,   "Close wxPython Demo")
        menu.AppendSeparator()
        menu.Append(self.TBMENU_CHANGE, "Change the TB Icon")
        menu.Append(self.TBMENU_REMOVE, "Remove the TB Icon")
        return menu


    def MakeIcon(self, img):
        """
        The various platforms have different requirements for the
        icon size...
        """
        if "wxMSW" in wx.PlatformInfo:
            img = img.Scale(16, 16)
        elif "wxGTK" in wx.PlatformInfo:
            img = img.Scale(22, 22)
        # wxMac can be any size upto 128x128, so leave the source img alone....
        icon = wx.IconFromBitmap(img.ConvertToBitmap() )
        return icon
   

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


    def OnTaskBarClose(self, evt):
        self.frame.Close()


    def OnTaskBarChange(self, evt):
        names = [ "WXPdemo", "Mondrian", "Pencil", "Carrot" ]                 
        name = names[self.imgidx]

        getFunc = getattr(images, "get%sImage" % name)
        self.imgidx += 1
        if self.imgidx >= len(names):
            self.imgidx = 0

        icon = self.MakeIcon(getFunc())
        self.SetIcon(icon, "This is a new icon: " + name)


    def OnTaskBarRemove(self, evt):
        self.RemoveIcon()


class MyFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, -1, "My Frame", size=(300, 300))
        panel = wx.Panel(self, -1)
        panel.Bind(wx.EVT_MOTION,  self.OnMove)
        wx.StaticText(panel, -1, "Pos:", pos=(10, 12))
        self.posCtrl = wx.TextCtrl(panel, -1, "", pos=(40, 10))

     try:
            self.tbicon = DemoTaskBarIcon(self)
        except:
            self.tbicon = None

        #wx.CallAfter(self.ShowTip)

        #self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
        #self.Bind(wx.EVT_ICONIZE, self.OnIconfiy)
    def OnCloseWindow(self, event):
        self.dying = True
        self.demoPage = None
        self.codePage = None
        self.mainmenu = None
        if self.tbicon is not None:
            self.tbicon.Destroy()
        self.Destroy()
    def OnIconfiy(self, evt):
        wx.LogMessage("OnIconfiy: %s" % evt.Iconized())
        evt.Skip()
    def OnMove(self, event):
        pos = event.GetPosition()
        self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show(True)
    app.MainLoop()

相关文章

  • Python中Iterator迭代器的使用杂谈

    Python中Iterator迭代器的使用杂谈

    Python中的迭代器意义不仅是在iter函数上的运用,更是一种处理可迭代对象的迭代器模式,这里我们来简单聊聊Python中Iterator迭代器的使用杂谈:
    2016-06-06
  • Python 从attribute到property详解

    Python 从attribute到property详解

    这篇文章主要介绍了Python 从attribute到property详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python脚本在Appium库上对移动应用实现自动化测试

    Python脚本在Appium库上对移动应用实现自动化测试

    这篇文章主要介绍了使用Python的Appium库对移动应用实现自动化测试的教程,属于Python脚本的一个自动化应用,需要的朋友可以参考下
    2015-04-04
  • Python封装的类型与作用域的优势实例深究

    Python封装的类型与作用域的优势实例深究

    封装是面向对象编程中的核心概念,它能够帮助程序员隐藏类的内部细节,并限制对类成员的直接访问,本文将深入探讨Python中封装的机制,介绍封装的类型和优势,并提供详细的示例展示如何在Python中实现封装
    2023-12-12
  • Python BeautifulSoup4实现数据解析与提取

    Python BeautifulSoup4实现数据解析与提取

    Beautiful Soup是一个Python的库,用于解析HTML和XML文档,提供了方便的数据提取和操作功能,下面小编就来和大家详细聊聊如何利用BeautifulSoup4实现数据解析与提取吧
    2023-10-10
  • python实现m3u8格式转换为mp4视频格式

    python实现m3u8格式转换为mp4视频格式

    这篇文章主要为大家详细介绍了python实现m3u8格式转换为mp4视频格式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 微信跳一跳python代码实现

    微信跳一跳python代码实现

    这篇文章主要为大家详细介绍了微信跳一跳python代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python pygame绘制游戏图像

    Python pygame绘制游戏图像

    这篇文章主要介绍了Python pygame绘制游戏图像,文章围绕主题展开pygame模块完成飞机大战游戏的实战开发的案例详情,需要的朋友可以参考一下
    2022-08-08
  • 完美解决keras保存好的model不能成功加载问题

    完美解决keras保存好的model不能成功加载问题

    这篇文章主要介绍了完美解决keras保存好的model不能成功加载问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python3从网络摄像机解析mjpeg http流的示例

    python3从网络摄像机解析mjpeg http流的示例

    这篇文章主要介绍了python3从网络摄像机解析mjpeg http流的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11

最新评论