在wxpython中怎么使用带有图片的文本按钮,不能使用 wx.Button 类,可以使用wx.GenBitmapTextButton 类。
这个类的构建器为:
这个类是在 wx.lib.buttons 下面发现的。
专题教程:wxpython中文教程
以下例子展示了这个wx.GenBitmapTextButton类的可能用法。
代码:
#!/usr/bin/python
#coding=utf-8
#genbitmaptextbutton.py
import wx
from wx.lib.buttons import GenBitmapTextButton
class MyDialog(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, size = (240, 360))
panel = wx.Panel(self, -1)
email = GenBitmapTextButton(self, 1, wx.Bitmap('icons/email.png'),
'邮 件', (20, 20), (200, -1))
email.SetBezelWidth(1)
email.SetBackgroundColour('#c2e6f8')
calendar = GenBitmapTextButton(self, 1,
wx.Bitmap('icons/calendar.png'),
'日 历', (20, 86), (200, -1))
calendar.SetBezelWidth(1)
calendar.SetBackgroundColour('#c2e6f8')
contacts = GenBitmapTextButton(self, 1,
wx.Bitmap('icons/contacts.png'),
'联系人', (20, 152), (200, -1))
contacts.SetBezelWidth(1)
contacts.SetBackgroundColour('#c2e6f8')
tasks = GenBitmapTextButton(self, 1,
wx.Bitmap('icons/tasks.png'),
'任 务', (20, 218), (200, -1))
tasks.SetBezelWidth(1)
tasks.SetBackgroundColour('#c2e6f8')
notes = GenBitmapTextButton(self, 1,
wx.Bitmap('icons/notes.png'),
'笔 记', (20, 284), (200, -1))
notes.SetBezelWidth(1)
notes.SetBackgroundColour('#c2e6f8')
email.Bind(wx.EVT_ENTER_WINDOW, self.OnButtonEnter)
email.Bind(wx.EVT_LEAVE_WINDOW, self.OnButtonLeave)
calendar.Bind(wx.EVT_ENTER_WINDOW, self.OnButtonEnter)
calendar.Bind(wx.EVT_LEAVE_WINDOW, self.OnButtonLeave)
contacts.Bind(wx.EVT_ENTER_WINDOW, self.OnButtonEnter)
contacts.Bind(wx.EVT_LEAVE_WINDOW, self.OnButtonLeave)
tasks.Bind(wx.EVT_ENTER_WINDOW, self.OnButtonEnter)
tasks.Bind(wx.EVT_LEAVE_WINDOW, self.OnButtonLeave)
notes.Bind(wx.EVT_ENTER_WINDOW, self.OnButtonEnter)
notes.Bind(wx.EVT_LEAVE_WINDOW, self.OnButtonLeave)
self.Center()
def OnButtonEnter(self, event):
obj = event.GetEventObject()
obj.SetBackgroundColour('#ffdf85')
obj.Refresh()
def OnButtonLeave(self, event):
obj = event.GetEventObject()
obj.SetBackgroundColour('#c2e6f8')
obj.Refresh()
class MyApp(wx.App):
def OnInit(self):
dlg = MyDialog(None, -1, 'genbitmaptextbutton.py')
dlg.ShowModal()
dlg.Destroy()
return True
app = MyApp(0)
app.MainLoop()
如图: