wxPython ボタンをインアクティブにしてみる
ボタンをインアクティブにして、クリックできないようにする。
ボタンをクリックしても動作できないようにしたいときがある。そんなときは、ボタンをインアクティブしておく。
wx.Buttonクラスはwx.Windowから継承されているので、wx.Windowクラスで定義されたメソッドを使う。なんと、ボタンもウィンドウのひとつなんですね。
- インアクティブにする
- Disable()
- アクティブにする
- Enable()
#!/usr/bin/env python #coding:utf-8 import wx class MyWindow(wx.Frame): def __init__(self,parent,id): wx.Frame.__init__(self,parent,id,u"インアクティブの実験",size=(300,200)) self.SetBackgroundColour('white') self.btn1 = wx.Button(self,-1,label="exit",pos=(10,10),size=(60,60)) self.btn2 = wx.Button(self,-1,label="Inactive",pos=(80,10),size=(60,60)) self.btn3 = wx.Button(self,-1,label="Active",pos=(150,10),size=(60,60)) self.Bind(wx.EVT_BUTTON, self.OnBtn1, self.btn1) self.Bind(wx.EVT_BUTTON, self.OnBtn2, self.btn2) self.Bind(wx.EVT_BUTTON, self.OnBtn3, self.btn3) def OnBtn1(self,event): self.Close(True) def OnBtn2(self,event): self.btn1.Disable() def OnBtn3(self,event): self.btn1.Enable() if __name__=='__main__': app=wx.PySimpleApp() frame=MyWindow(parent=None,id=-1) frame.Show() app.MainLoop()