一直在學習系統托盤的實現,於是自己寫了乙個簡單的系統托盤例項,右鍵包括演示、最大化、最小化、退出和關於。在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中乙個常用的方法有 如下圖為乙個分割視窗,採...