【问题标题】:How to manually set the toggle state of wxpython platebutton如何手动设置wxpython platebutton的切换状态
【发布时间】:2014-02-11 09:56:06
【问题描述】:

我正在使用 wxpython 中的 platebutton i 构建一个应用程序。问题是我无法手动设置工具按钮的 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()

【问题讨论】:

    标签: menu wxpython wxwidgets


    【解决方案1】:
    PLATE_NORMAL = 0
    PLATE_PRESSED = 1
    PLATE_HIGHLIGHT = 2
    

    SetState(0) 表示设置为正常。

    【讨论】:

    • 我已经这样做了,正如您在上面的代码中看到的那样。但它不起作用。您能否尝试该代码并检查它是否有效,因为它不适合我。
    • 能否请您尝试使用 SetState(1) 或 SetState(2) 看看有什么不同?
    • @user3248521 或者您可以提供一个演示,我们可以运行并检查发生了什么。
    【解决方案2】:

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

    btn._ToggleState()
    btn._pressed = True
    

    【讨论】:

      【解决方案3】:

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

      button._SetState(ix)
      button.Refresh()
      

      其中 ix = 您选择的州。

      【讨论】:

      • 我试过了,但它不起作用。用户将按钮切换到按下状态后,我希望它在用户单击窗口中的任何位置时恢复正常状态。但是使用上面的代码它不起作用..
      猜你喜欢
      • 2014-05-26
      • 2021-10-15
      • 2010-09-29
      • 2011-10-15
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多