2014-02-11 3 views
0

wxpython의 platebutton을 사용하여 응용 프로그램을 작성하고 있습니다. 문제는 내가 buton의 SetState를 수동으로 설정할 수 없다는 것입니다. SetState (0)를 사용했지만 토글 버튼의 ​​상태는 변경되지 않습니다. 어떤 도움이라도 좋을 것입니다. 감사. 샘플 번호 :wxpython platebutton의 토글 상태를 수동으로 설정하는 방법

self.infinity= platebutton.PlateButton(self._ribbon,wx.ID_NEW, bmp = wx.Bitmap('infinity.bmp'), pos = (0,0), size = (38,18), style= platebutton.PB_STYLE_NOBG |platebutton.PB_STYLE_TOGGLE) 

def OnInfinityToggled(self,event): 
    if event.GetEventObject().IsPressed(): 
     self.popupmenu = wx.Menu() 
     Session = self.popupmenu.Append(-1, "Session") 
     self.Bind(wx.EVT_MENU, self.SessionMenu, Session) 
     self.PopupMenu(self.popupmenu,(2,23)) 
    else: 
     pass 

def SessionMenu(self, event): 
    print 5 
    self.infinity.SetState(0) 
    self.infinity.Raise() 

답변

0
PLATE_NORMAL = 0 
PLATE_PRESSED = 1 
PLATE_HIGHLIGHT = 2 

setState를 (0) 정상 설정 수단.

+0

위의 코드에서 볼 수있는 것처럼 이미 수행했습니다. 그러나 그것은 효과가 없습니다. 코드를 시험해보고 작동하는지 여부를 확인해 주시겠습니까? – Samyak

+0

SetState (1) 또는 SetState (2)를 사용해 다른 값이 있는지 확인하십시오. –

+0

@ user3248521 또는 우리가 실행할 수 있고 어떤 일이 일어 났는지 확인할 수있는 데모를 제공 할 수 있습니다. –

-1

같은 문제가있었습니다. 주위를 노는 것은 내 문제를 해결할 수있었습니다

button._SetState(ix) 
button.Refresh() 

여기서 ix는 사용자가 선택한 상태입니다.

+0

시도했지만 작동하지 않습니다. 사용자가 버튼을 눌렀 던 상태로 전환 한 후, 사용자가 창 안의 아무 곳이나 클릭하면 다시 정상 상태로 돌아 오기를 원합니다. 하지만 위의 코드를 사용하면 작동하지 않습니다 .. – Samyak

관련 문제