wxPython BitmapButton图片按钮的用法

BitmapButton 是一类特殊的按钮,和普通按钮的区别就是该按钮上面不显示文字而是显示图片。

下面是 BitmapButton 元素的初始化函数定义:
BitmapButton(parent,
             id=ID_ANY,
             bitmap=NullBitmap,
             pos=DefaultPosition,
             size=DefaultSize,
             style=BU_AUTODRAW,
             validator=DefaultValidator,
             name=ButtonNameStr)
下面演示了一个使用该元素的例子,在该例子中,主窗口包含一个图片按钮,如果单击该按钮,应用程序就退出。完整代码如下:
import wx                        # 引入wxPython包
# 定义主窗口类
class MainFrame(wx.Frame):
  def __init__(self, p, t):        # 初始化函数
    """ p: 父亲窗口                # 第一个参数p表示parent,也就是父元素对象
    t:  窗口标题"""                # 第二个参数t表示title,也就是窗口的标题
    # 基类的初始化函数
    wx.Frame.__init__(self, id=-1, parent=p, title=t, size=(300, 200))
    # 该panel的父亲就是该窗口, id=-1就表示任意ID
    panel = wx.Panel(self, -1)
    bmp = wx.Image("exit.png", wx.BITMAP_TYPE_PNG).ConvertToBitmap()
    self.button = wx.BitmapButton(panel, -1, bmp, pos=(50, 20))
    # 绑定事件,就是指定的button被单击后调用onClick()成员函数
    self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
    self.button.SetDefault()
  def OnClick(self, event):
    # 一旦单击就关闭主窗口
    self.Destroy()
if __name__ == "__main__":
    # 创建一个应用程序
    app = wx.App(False)
    # frame就是应用程序的主窗口
    frame = MainFrame(None, "BitmapButton演示")
    frame.Show(True)        # 显示主窗口
    app.MainLoop()        # 开始消息循环
运行后,显示如图 1 所示的窗口。


图 1 图片按钮