需要注意的是,这里是托盘上的图标弹出菜单是覆盖了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实现程序最小到系统托盘的实例”是指使用Python的wxPython库来创建一个应用程序,该程序能够最小化到系统托盘区域,而不是传统的任务栏。这是一个非常实用的功能,允许用户将程序隐藏起来,而不会...
用户可以通过运行这些文件来安装对应的wxPython版本,它们会将必要的库文件和组件添加到系统中,使得Python项目能够导入并使用wxPython。 **使用wxPython** 使用wxPython开发应用程序时,首先需要在Python环境中...
这个压缩包文件"wxPython-demo-4.0.6_wxpython官方demo_wxPython-demo_wxpython_DEMO_w"包含了wxPython的官方演示程序,是学习和探索wxPython功能的理想资源。 【wxPython Demo】是wxPython库附带的一系列示例和...
标题中的"python-2.7+wxPython2.8-win64.rar"表明这是一个包含Python 2.7和wxPython 2.8的Windows 64位版本的压缩包。这个压缩包可能用于搭建一个基于Python的图形用户界面(GUI)开发环境。Python 2.7是一个广泛...
本实例关注的是如何利用`wxPython`实现应用程序的托盘功能,特别是当用户最小化程序时,将程序图标隐藏到系统托盘区,而不是完全关闭或隐藏程序。 首先,我们需要了解`wxPython`中的`TaskBarIcon`类,这是实现托盘...
### wxPython - 学习 Python #### 一、Python 为何适合 GUI 开发? Python 作为一门高级编程语言,以其简洁优雅的语法和强大的库支持而闻名。在图形用户界面(GUI)开发领域,Python 同样表现出色,这主要得益于...
本实例将重点讲解使用Tkinter库创建一个简单的GUI应用。 Tkinter是Python的标准GUI库,它基于Tcl/Tk库。这个库易于学习,适合初学者快速构建GUI应用。首先,我们需要导入Tkinter库,并创建一个主窗口。在Python中,...
python3.8 pycharm安装wxPthon4.1.1库,含32位64位的两个文件 3.打开Anaconda Prompt,或者在pycharm终端: 如文件放在d盘 输入: pip install d:\...输入: pip install d:\wxPython-4.1.1-cp38-cp38-win_amd64.whl
为了从Python 2迁移到Python 3,可以使用Python自带的`2to3`工具进行转换。 学习Python的正确方法: 1. **坚持实践**:理论学习与实际编程相结合,不断练习以巩固知识。 2. **实战项目**:通过完成实际项目来提升...
【Python和wxPython用于Genesis Scripts开发】 Python是一种高级编程语言,以其简洁的语法和强大的功能而闻名。它具有高效的高层数据结构,支持面向对象编程,这使得Python在编写复杂程序时能够保持代码的清晰和...
wxWidgets库的跨平台特性也继承到了wxPython中,这意味着用wxPython编写的应用程序可以在Windows、Linux、macOS等多种操作系统上运行,无需重写代码。这对于希望开发能够广泛部署的桌面应用的开发者来说,是一项巨大...
python GUI图形化编程-----wxpython 一、python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt :是python最复杂也是使用最广泛的图形化 Wx :是python当中居中的一...
【Python 2.4 和 wxPython】 Python 2.4 是 Python 语言的一个较旧版本,它在2004年发布,并于2010年停止支持。这个版本包含了许多基础的Python特性,如元组赋值、生成器、with语句等。然而,随着语言的发展,许多新...
安装完成后,wxPython库将会被添加到Python的site-packages目录下,可以直接在Python脚本中导入并使用。 **使用wxPython开发** 使用wxPython开发GUI应用的基本步骤包括: 1. 导入必要的模块,如`wx`。 2. 创建应用...
带有MSP430G2553和Python-GUI-wxpython-的USB室温监控该项目是一个实时室温监测USB设备,可在python GUI应用程序上显示温度值。它使用MSP430G2553微控制器和来自硅实验室的USB至TTL转换器。python应用程序需要...
Python是一种广泛使用的高级编程语言,因其简洁、易读的语法而受到开发者们的喜爱。它采用“胶水语言”的特性,能够轻松地与其他编程语言集成,使其成为多领域应用的理想选择。 在**Web和Internet开发**中,Python...
**wxPython教程及实例** **概述** `wxPython` 是一个强大的GUI(图形用户界面)工具包,它允许Python开发者利用原生操作系统界面构建应用程序。它基于C++的`wxWidgets`库,提供了丰富的控件和组件,适用于Windows...
在“Python源码实例-名言查询.zip”这个压缩包中,包含了一个具体的Python编程示例,用于实现名言查询的功能。这个实例涉及到自动化、数据分析、网络爬虫以及游戏开发等多个IT领域的知识点,下面将详细解析这些技术...
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 ...