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 をクリックした。