I am building an application using platebutton iin wxpython. The problem is that I am not able to manually SetState of the toogle buton. I used SetState(0) but it does not change the state of toggle button. Any help would be great. Thanks.I have attached a sample code file also. Also, the code is written below too.
Sample code:
import wx
import wx.lib.platebtn as platebtn
class Toolbar(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)
self.infinity= platebtn.PlateButton(self, -1, label='Button', size = (80,40), style= platebtn.PB_STYLE_TOGGLE)
self.infinity.Bind(wx.EVT_TOGGLEBUTTON, self.OnInfinityToggled)
sizer.Add(self.infinity, 0)
def OnInfinityToggled(self,event):
if event.GetEventObject().IsPressed():
self.popupmenu = wx.Menu()
Session = self.popupmenu.Append(-1, "Session")
Session2= self.popupmenu.Append(-1, "Session2")
self.Bind(wx.EVT_MENU, self.SessionMenu, Session)
self.Bind(wx.EVT_MENU, self.SessionMenu, Session2)
self.PopupMenu(self.popupmenu,(2,20))
self.Bind(wx.EVT_MENU_CLOSE, self.SessionMenu)
else:
pass
def SessionMenu(self, event):
self.infinity.SetState(0)
self.infinity.Raise()
self.infinity.Refresh()
if name == ‘main’:
app = wx.PySimpleApp(0)
f = wx.Frame(None)
p = Toolbar(f)
f.Show()
app.MainLoop()
platebtn.py (1.33 KB)