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


Posted in Python onMarch 08, 2013
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 相关文章推荐
python使用正则表达式提取网页URL的方法
May 26 Python
对pandas中to_dict的用法详解
Jun 05 Python
基于Python列表解析(列表推导式)
Jun 23 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
python爬虫获取百度首页内容教学
Dec 23 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
django admin后台添加导出excel功能示例代码
May 15 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
python中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 #Python
python中关于日期时间处理的问答集锦
Mar 08 #Python
python局部赋值的规则
Mar 07 #Python
Python 用户登录验证的小例子
Mar 06 #Python
Eclipse + Python 的安装与配置流程
Mar 05 #Python
python将html转成PDF的实现代码(包含中文)
Mar 04 #Python
python发送邮件的实例代码(支持html、图片、附件)
Mar 04 #Python
You might like
php实现利用phpexcel导出数据
2013/08/24 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
Scrapy的简单使用教程
2017/10/24 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python交互模式基础知识点学习
2020/06/18 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
电气技术员岗位职责
2013/11/19 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
中学生运动会口号
2014/06/07 职场文书
新文化运动的口号
2014/06/21 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
房产公证书
2015/01/23 职场文书
民主评议党员个人总结
2015/02/13 职场文书
走进毛泽东观后感
2015/06/04 职场文书
新入职员工工作总结
2015/10/15 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
python pyhs2 的安装操作
2021/04/07 Python