RadioBox 单选框从某一组元素中只能有一个被选中,如果某个元素被单击选中,那么其他元素都会取消选中。
RadioBox的初始化函数定义如下:
RadioBox(parent,
id=ID_ANY,
label=EmptyString, # 关联的文本库
pos=DefaultPosition, # 默认值的位置,从0开始计数
size=DefaultSize,
choices=[], # 候选项列表
majorDimension=0,
style=RA_SPECIFY_COLS,
validator=DefaultValidator,
name=RadioBoxNameStr)
该元素包含很多属性,其中最主要的属性有两个,一个是 label,也就是单选框的标题;另外一个是 choices,也就是该组元素的标签列表。另外还有一个接口函数 GetSelection(),用来返回被选中的元素的位置,返回值是一个整数,如果是 0 表示第一个候选项被选中,如果是 1 表示第二个候选项被选中。
下面是选择商品的一个例子,用户可以选择商品个个数和商品种类,并且这两个选项都是单选的。下面是完整的代码:
import wx
class RadioButtonFrameDemo1(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,
None,
-1, # 系统自动生成ID值
'RadioBox演示', # 标题
size=(350, 200))
panel = wx.Panel(self, -1)
sampleList1 = ['0', '1', '2', '3', '4', '5',
'6', '7', '8']
wx.RadioBox(panel, -1, "选择商品个数", (10, 10), wx.DefaultSize,
sampleList1, 2, wx.RA_SPECIFY_COLS)
sampleList2 = [u'苹果', u'桃', u'梨']
wx.RadioBox(panel, -1, "选择商品种类", (150, 10), wx.DefaultSize,
sampleList2, 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
if __name__ == '__main__':
app = wx.App()
frame = RadioButtonFrameDemo1()
frame.Show(True)
app.MainLoop()
运行后可以看到图 1 所示的窗口。
可以通过鼠标单击来设定商品种类和个数,操作后窗口如图 2 所示。