表示されている画像の切り替え方法の練習

ボタンを押すと表示されている画像が変わるようにしたい。
ここでは矢印の絵を二つ用意して、ボタンを押すことでそれらを交互に表示するようにしてみる。用意する画像ファイル(up.pngとdown.png)は32ピクセル×32ピクセルの大きさである。
wxPythonデモのImg2PyArtProvider.pyを参考に、次のようなコードを書いた。

import wx

class MyApp(wx.PySimpleApp):
    def OnInit(self):
        width, height = 170, 150
        self.Frm = wx.Frame(None, -1, "Arrow", size=wx.Size(width, height))

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.Frm.SetSizer(sizer)

        changeBtn = wx.Button(self.Frm, -1, "push here!")
        self.Bind(wx.EVT_BUTTON, self.OnButtonPush, changeBtn)

        self.count = 0
        self.upBmap   = wx.Bitmap('up.png')
        self.downBmap = wx.Bitmap('down.png')
        bmp = wx.EmptyBitmap(32,32)
        self.bmpFlag = wx.StaticBitmap(self.Frm, -1, bmp)

        sizer.Add(changeBtn, 0, wx.CENTER|wx.ALL, 10)
        sizer.Add(self.bmpFlag, 0, wx.CENTER|wx.ALL, 10)

        self.Frm.Show()
        return True

    def OnButtonPush(self, evt):
        self.count += 1
        if (self.count % 2):
            self.bmpFlag.SetBitmap(self.downBmap)
        else:
            self.bmpFlag.SetBitmap(self.upBmap)

app = MyApp()
app.MainLoop()

起動画面は下の通り。黒くなっている領域がwx.EmptyBitmap(32,32)で確保される領域。

ボタンを一度押すと、下のように図が表示される。

もう一度ボタンを押すと、下のように図が変わる。さらにボタンを押すと交互に絵が切り替わる。