wxPython トグルボタンを作って並べる
wxPythonでトグルボタンを作って並べてみる。
トグルボタンはクリックすると状態が変わり、再びクリックすると状態が元に戻る。これの繰り返し。
今回はクリックすると、ボタンの色を緑色に変化させた。もういちどクリックすると元の色に戻る。
#!/usr/bin/env python
#coding:utf-8
import wx
class MyButton(wx.Button):
def __init__(self,parent,label):
wx.Button.__init__(self,parent,-1,label=label)
self.ftoggle=None
def Mark(self):
self.SetBackgroundColour('green')
def Unmark(self):
self.SetBackgroundColour('wx.NullColour')
def Toggle(self):
if self.ftoggle:
self.Unmark()
self.ftoggle=None
else:
self.Mark()
self.ftoggle=True
class MyWindow(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,"MyTitle",size=(300,200))
self.button=[]
for i in range(6):
labelstr = "button "+str(i)
self.button.append(MyButton(self,labelstr))
sz=wx.BoxSizer(wx.VERTICAL)
for i in self.button:
sz.Add(i,1,wx.EXPAND)
self.SetSizer(sz)
self.Bind(wx.EVT_BUTTON, self.DoSomething)
def DoSomething(self,event):
btn=event.GetEventObject()
btn.Toggle()
if __name__=='__main__':
app=wx.PySimpleApp()
frame=MyWindow(parent=None,id=-1)
frame.Show()
app.MainLoop()
実行すると
プログラムを実行した後、button 2 と button 4 をクリックした。

