2011-11-20 4 views
4

버튼 목록이 있으며 어떤 버튼을 눌렀는지 확인하기 위해 루프를 작성한 다음 클릭시 해당 버튼을 비활성화합니다.wxPython, 버튼을 비활성화 하시겠습니까?

def change(self,event): 
     self.Disable() 


    for i in enumerate(file_pool): 
     self.button_pool.append(wx.Button(self.sizer, -1, i[1], pos=(20, i[0]*45),size=(200,40))) #this would create the list of buttons 
    for i in self.button_pool: 
     i.Bind(wx.EVT_BUTTON, self.change) #bind each button 

그러나,이 모든 위젯뿐 아니라 누르면 버튼을 비활성화합니다 : 여기

코드의 조각이다. 클릭 한 버튼 만 어떻게 비활성화 할 수 있습니까?

감사

답변

11

당신은 이벤트에서 개체를 얻을 수 있습니다 :

def change(self, event): 
    myobject = event.GetEventObject() 
    myobject.Disable() 
+0

감사합니다, 호아킨을! –

+1

거기에 하나의 버튼을 누르면 다른 버튼을 활성화하는 방법이 있습니까? –

+1

루프의 단추 목록에서 가져 오는 모든 사용자를 활성화 할 수 있지만 첫 번째'if myobject == item_from_list' 확인하십시오 – joaquin

관련 문제