wxpython實現程式最小到系統托盤的乙個例項

2021-09-09 05:04:36 字數 2966 閱讀 3617

一直在學習系統托盤的實現,於是自己寫了乙個簡單的系統托盤例項,右鍵包括演示、最大化、最小化、退出和關於。在python2.6下測試通過。

#

-*- coding: cp936 -*-

import wx

class taskbaricon(wx.taskbaricon):

id_play = wx.newid()

id_about = wx.newid()

id_minshow=wx.newid()

id_maxshow=wx.newid()

id_closeshow=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), '

系統托盤演示!

') #wx.ico為ico圖示檔案

self.bind(wx.evt_taskbar_left_dclick, self.ontaskbarleftdclick) #

定義左鍵雙擊

self.bind(wx.evt_menu, self.onplay, id=self.id_play)

self.bind(wx.evt_menu, self.onabout, id=self.id_about)

self.bind(wx.evt_menu, self.onminshow, id=self.id_minshow)

self.bind(wx.evt_menu, self.onmaxshow, id=self.id_maxshow)

self.bind(wx.evt_menu, self.oncloseshow, id=self.id_closeshow)

def ontaskbarleftdclick(self, event):

if self.frame.isiconized():

self.frame.iconize(false)

ifnot self.frame.isshown():

self.frame.show(true)

self.frame.raise()

def onplay(self, event):

wx.messagebox('

python 實現程式系統托盤的乙個演示,該演示在python2.6上執行通過!

', '

演示')

def onabout(self,event):

wx.messagebox('

系統托盤演示v1.0 python2.x!

', '

關於')

def onminshow(self,event):

self.frame.iconize(true)

def onmaxshow(self,event):

if self.frame.isiconized():

self.frame.iconize(false)

ifnot self.frame.isshown():

self.frame.show(true)

self.frame.raise()

self.frame.maximize(true) #

最大化顯示

def oncloseshow(self,event):

self.frame.close(true)

#右鍵選單

演示最小化

最大化關於

退出')

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)

self.seticon(wx.icon('

wx.ico

', wx.bitmap_type_ico))

panel = wx.panel(self, wx.id_any)

statictext = wx.statictext(panel,wx.id_any,label=u'

hello world

', pos=wx.point(88, 152), size=wx.size(200, 100))

statictext.setfont(wx.font(26, wx.swiss, wx.normal, wx.normal,false, u'

tahoma

'))statictext.setforegroundcolour(wx.colour(255, 0, 0))

sizer = wx.boxsizer()

sizer.add(statictext, -1,wx.top|wx.left,200)

panel.setsizer(sizer)

self.taskbaricon = taskbaricon(self)

#繫結事件

self.bind(wx.evt_close, self.onclose)

self.bind(wx.evt_iconize, self.oniconfiy) #

視窗最小化時,呼叫oniconfiy,注意wx窗體上的最小化按鈕,觸發的事件是 wx.evt_iconize,而根本就沒有定義什麼wx.evt_minimize,但是最大化,有個wx.evt_maximize。

__name__ == '

__main__

':testframe()

wxPython開發程式

漂亮的介面是乙個gui程式必不可少的一部分,wxpython可以快速簡潔的開發介面。加之python強大的功能和簡潔的語法,可以說wxpython是python在gui中的一種主流應用。乙個基本的wxpython程式必須的五個基本步驟,少一步都不可以。1 匯入必須的wxpython包 2 子類化wx...

wxpython實現檔案拖拽

我想讓wx.grid裡面的單元格能夠支援檔案拖拽,實現起來挺簡單的,共分3步 1 建立乙個wx.filedroptarget子類的物件,並把要支援拖拽的控制項傳給它的建構函式,此處是grid 2 呼叫grid的setdroptarget函式,並將第1步建立的wx.filedroptarget子類物件...

wxPython實現分隔視窗

1 分割視窗 分隔視窗 wx.splitterwindow 就是將視窗分成兩部分,即左右或上下兩部分,如下圖所示視窗,整體上分為左右兩個視窗,右視窗又分為上下兩視窗,兩個視窗之間的分隔線是可以拖動的,稱為 窗框 sash wx.splitterwindow中乙個常用的方法有 如下圖為乙個分割視窗,採...