设为首页 收藏本站
查看: 372|回复: 0

[经验分享] Python实例讲解 -- wxpython 最小到托盘及欢迎图片

[复制链接]

尚未签到

发表于 2017-5-6 07:02:10 | 显示全部楼层 |阅读模式
需要注意的是,这里是托盘上的图标弹出菜单是覆盖了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()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-373539-1-1.html 上篇帖子: UTF-16的编码转换函数(Python实现) 下篇帖子: Learn Python The Hard Way学习(31)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表