2014-02-11 41 views
0

我正在使用platebutton iin wxpython構建一個應用程序。問題是我無法手動設置toogle的buton。我使用SetState(0),但它不改變切換按鈕的狀態。任何幫助都會很棒。謝謝。示例代碼:如何手動設置wxpython板按鈕的切換狀態

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