如何手动设置wxpython platebutton的切换状态

时间:2014-02-11 09:56:07

标签: menu wxpython wxwidgets

我正在使用wxpython中的platebutton构建一个应用程序。问题是我无法手动设置toogle的SetState。我使用了SetState(0)但它没有改变切换按钮的状态。任何帮助都会很棒。谢谢。示例代码:

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()

3 个答案:

答案 0 :(得分:0)

PLATE_NORMAL = 0
PLATE_PRESSED = 1
PLATE_HIGHLIGHT = 2

SetState(0)表示设置为normal。

答案 1 :(得分:0)

这是我设法进入toggle状态的方法:

btn._ToggleState()
btn._pressed = True

答案 2 :(得分:-1)

我遇到了同样的问题。玩弄我设法用

解决我的问题
button._SetState(ix)
button.Refresh()

其中ix =您选择的州。