表示されている画像の切り替え方法の練習
ボタンを押すと表示されている画像が変わるようにしたい。
ここでは矢印の絵を二つ用意して、ボタンを押すことでそれらを交互に表示するようにしてみる。用意する画像ファイル(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)で確保される領域。
ボタンを一度押すと、下のように図が表示される。
もう一度ボタンを押すと、下のように図が変わる。さらにボタンを押すと交互に絵が切り替わる。