wxpython 最小化到托盤(pán)與歡迎圖片的實(shí)現(xiàn)方法
一直在學(xué)習(xí)系統(tǒng)托盤(pán)的實(shí)現(xiàn),于是自己寫(xiě)了一個(gè)簡(jiǎn)單的系統(tǒng)托盤(pán)實(shí)例,右鍵包括演示、最大化、最小化、退出和關(guān)于。在python2.6下測(cè)試通過(guò)。
注意,本節(jié)分享的python實(shí)例代碼,這里是托盤(pán)上的圖標(biāo)彈出菜單是覆蓋了CreatePopupMenu。
也可以綁定2個(gè)方法,一個(gè)wx.EVT_TASKBAR_RIGHT_DOWN,方法里面生成menu,然后再來(lái)一個(gè)wx.EVT_MENU,定義要處理的事件函數(shù)。
還有一個(gè)就是Wx窗體上的最小化按鈕,觸發(fā)的事件是 wx.EVT_ICONIZE,而根本就沒(méi)有定義什么wx.EVT_MINIMIZE,但是最大化,有個(gè)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()
- Python wxPython庫(kù)使用wx.ListBox創(chuàng)建列表框示例
- Python wxPython庫(kù)消息對(duì)話框MessageDialog用法示例
- Python實(shí)例之wxpython中Frame使用方法
- python之wxPython菜單使用詳解
- 用Python中的wxPython實(shí)現(xiàn)最基本的瀏覽器功能
- wxPython中l(wèi)istbox用法實(shí)例詳解
- 基于wxpython開(kāi)發(fā)的簡(jiǎn)單gui計(jì)算器實(shí)例
- python通過(guò)wxPython打開(kāi)一個(gè)音頻文件并播放的方法
- Python wxPython庫(kù)Core組件BoxSizer用法示例
相關(guān)文章
PyTorch搭建LSTM實(shí)現(xiàn)時(shí)間序列負(fù)荷預(yù)測(cè)
這篇文章主要為大家介紹了PyTorch搭建LSTM實(shí)現(xiàn)時(shí)間序列負(fù)荷預(yù)測(cè),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python實(shí)現(xiàn)基于POS算法的區(qū)塊鏈
這篇文章主要介紹了Python實(shí)現(xiàn)基于POS算法的區(qū)塊鏈,今天我們就來(lái)認(rèn)識(shí)POS(proof of stake)算法。需要的朋友可以參考下2018-08-08Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟
今天給大家分享Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟,激活A(yù)naconda環(huán)境變量分為簡(jiǎn)潔版和詳細(xì)版,簡(jiǎn)潔版只需要通過(guò)輸入命令進(jìn)行配置即可,詳細(xì)版本文通過(guò)圖文步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06python數(shù)據(jù)挖掘使用Evidently創(chuàng)建機(jī)器學(xué)習(xí)模型儀表板
在本文中,我們將探索 Evidently 并創(chuàng)建交互式報(bào)告/儀表板。有需要的朋友歡迎大家收藏學(xué)習(xí),希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組的問(wèn)題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語(yǔ)句末尾添加逗號(hào),應(yīng)該注意檢查是否存在末尾逗號(hào)導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組,需要的朋友可以參考下2023-09-09在PyCharm環(huán)境中使用Jupyter Notebook的兩種方法總結(jié)
今天小編就為大家分享一篇在PyCharm環(huán)境中使用Jupyter Notebook的兩種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python利用os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤(pán)文件
你們一定想不到os模塊還可以這樣玩,本文就將利用Python中的os模塊實(shí)現(xiàn)自動(dòng)刪除磁盤(pán)文件功能,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-11-11Python if語(yǔ)句知識(shí)點(diǎn)用法總結(jié)
本篇文章給python初學(xué)者總結(jié)了關(guān)于Python之if語(yǔ)句的相關(guān)用法以及知識(shí)點(diǎn)總結(jié),跟著學(xué)習(xí)下吧。2018-06-06