如何取消初始的wx.RadioBox选择?

3 投票
4 回答
1782 浏览
提问于 2025-04-16 04:00

我有以下代码:

myList =['a','b']
rb=wx.RadioBox(self.panel, -1, "Options :", (0, 0), wx.DefaultSize,myList, 2, wx.RA_SPECIFY_COLS)

当这个代码第一次运行时,我看到已经选择了一个选项。我想知道怎么改代码,让这个单选框第一次显示的时候没有任何选项被选中。

4 个回答

1

如果你只是想让初始选择不显示出来,可以试试用 ShowItem(item, show=True) 这个方法。

这里有个例子:

myList =['','a','b']
rb=wx.RadioBox(self.panel, -1, "Options :", (0, 0), wx.DefaultSize,myList, 2, wx.RA_SPECIFY_COLS)
rb.ShowItem(0, show=False)
2

如果你真的需要这样做,那可能唯一的办法就是自己创建一个 RadioBox。一个 RadioBox 可以很简单地通过一个 PanelStaticBoxStaticBoxSizer,当然还有 RadioButtons 来构建。

在你的 RadioBox__init__ 方法中,使用 RadioButtonsSetValue() 方法来设置 RadioButtons 的初始值为 False。

可以看看 wxpython 示例中的 RadioButton 演示,里面应该有足够的内容帮助你朝着正确的方向开始。

4

使用单选框的意思是,“这里有两个或更多的选项,它们是互相排斥的,用户必须选择其中一个。”

单选框永远不会处于没有选择的状态。如果出现这种情况,那就不要使用单选框。

如果你不想让当前的单选框选项中有一个默认被选中,可以添加一个“无”或“没有选择”的选项。

撰写回答