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()


