【问题标题】:How to programmatically select a wxPython RadioButton如何以编程方式选择 wxPython RadioButton
【发布时间】:2016-12-17 20:53:18
【问题描述】:

如何以编程方式选择/检查 wxPython RadioButton?或者换一种说法,如何在单选按钮组中定义默认选择?

baud_boxsizer = wx.BoxSizer(wx.HORIZONTAL)
baud_boxsizer.Add(wx.RadioButton(panel, label="9600", style=wx.RB_GROUP))
baud_boxsizer.Add(wx.RadioButton(panel, label="57600"))
...

RadioButton API 似乎没有提供这样的功能,而单选按钮 group 有点“虚拟”,因为它只存在于 GUI 中。

我知道我可以使用 RadioBox,但我不知道如何设置它的样式,所以它不会看起来像 RadioBox(只需要一排水平单选按钮)。

【问题讨论】:

  • 快速浏览网络表明SetValue 应该能够做到。
  • 工作,谢谢。我现在了解到查看wxPython Phoenix docs 真的很有用——即使我没有使用 Phoenix 版本。 2.8.x API 文档在这方面绝对没用。我还认为“SetValue”对于检查/取消选中 GUI 控件的方法来说是一个糟糕的名称。

标签: python wxpython


【解决方案1】:

只是为了有一个编码的答案供将来参考,而不仅仅是评论:

import wx

class MyFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, -1, "My Frame", size=(600, 300))
        self.panel = wx.Panel(self,-1)
        #self.panel.Bind(wx.EVT_MOTION,  self.OnMove)
        my_boxsizer = wx.BoxSizer(wx.HORIZONTAL)
        my_apple = wx.RadioButton(self.panel, -1, "Apple")
        my_mango = wx.RadioButton(self.panel, -1, "Mango")
        my_banana = wx.RadioButton(self.panel, -1, "Banana")
        my_orange = wx.CheckBox(self.panel, -1, "Orange", (20,250), (160,-1))
        my_boxsizer.Add(my_apple, 0, wx.ALL|wx.EXPAND, 5)
        my_boxsizer.Add(my_mango, 0, wx.ALL|wx.EXPAND, 5)
        my_boxsizer.Add(my_banana, 0, wx.ALL|wx.EXPAND, 5)
        my_boxsizer.Add(my_orange, 0, wx.ALL|wx.EXPAND, 5)
        self.panel.SetSizer(my_boxsizer)
        my_banana.SetValue(True)
        my_orange.SetValue(True)
        self.Show()


app = wx.App()
frame = MyFrame()
app.MainLoop()

【讨论】:

  • 我们已经确定这是您提到的正确答案,但无论如何感谢。接受。
猜你喜欢
  • 2014-01-18
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2019-03-14
  • 1970-01-01
相关资源
最近更新 更多