2014-02-11 3 views
0

Я создаю приложение с помощью планшета iin wxpython. Проблема в том, что я не могу вручную установить SetState в google. Я использовал 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

Смежные вопросы