需要注意的是,这里是托盘上的图标弹出菜单是覆盖了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()
分享到:
相关推荐
wxPython - Learning Python wxPython - 学习 Python.doc
python-2.7+wxPython2.8-win64 CANOPEN对象字典编辑开发工具
wxpython托盘(最小化)实例
wxpython 学习,各种demo集合,
wxPython2.8-win64-unicode-2.8.12.1-py27 wxPython2.8-win32-unicode-2.8.12.1-py27 都集合在压包里了。
wxPython4.1文件下载Win64版本,支持Python2.7/Python3.7/Python3.8
带有MSP430G2553和Python-GUI-wxpython-的USB室温监控该项目是一个实时室温监测USB设备,可在python GUI应用程序上显示温度值。它使用MSP430G2553微控制器和来自硅实验室的USB至TTL转换器。python应用程序需要...
python GUI图形化编程-----wxpython 一、python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt :是python最复杂也是使用最广泛的图形化 Wx :是python当中居中的一...
自己写的一个简单的系统托盘实例,右键包括演示、最大化、最小化、退出和关于。在python2.6下测试通过。
This document will help explain some of the major changes in wxPython 2.6 since the 2.4 series and let you know what you need to do to adapt your programs to those changes. Be sure to also check in ...
python2.4相对应的wxPython,还有很多库,一次性下载,不用费心去找了。
Python学习资源打包下载,共包含9个文件,7个Python文档+2个wxPython文档: Dive Into Python.chm python-2.7.2.chm Python Programming on Win32 .chm Python核心编程.pdf ...wxpython-in-action-zh.pdf
本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑;使用wxPython编写图形化的程序,并进一步将这个程序发展为远程控制程序。 课程目录: |--|----|----...
wxpython for python2.4 wxpython for python2.4 wxpython for python2.4 wxpython for python2.4 做python开发,注意自己的python版本是2.4
本资源位python3.6下的wxPython whl文件,可以直接pip install安装,有需要的可以下载一下。
三个工具python-2.7.6 wxPython2.8-win32-unicode-2.8.12.1-py27 SPE-0.8.3.c-wx2.6.1.0-no_setup
下载完成使用以下命令完成安装:pip install numpy-1.18.1-cp37-cp37m-win_amd64.whl Pillow-7.0.0-cp37-cp37m-win_amd64.whl six-1.14.0-py2.py3-none-any.whl wxPython-4.0.6-cp37-cp37m-win_amd64.whl
wxPython2.8-win64-unicode-2.8.12.1-py27,robotframework环境搭建所需相关组件,已测试可用
python UI可视化设计工具(WxPython可视化编辑器)
python2.7 py2exe wxPython python2.7是python运行环境 py2exe是一个打包工具,可以把你的python程序打包成不依赖python环境的exe wxPython是一个GUI扩展包,类似MFC,使用起来还是蛮方便的