ComboBox 本质是一个单选框,不同于普通的单选框,其占地比较小,而且可以用键盘输入来设定选中对象。
ComboBox的初始化函数定义如下:
ComboBox(parent,
id=ID_ANY,
value=EmptyString,
pos=DefaultPosition,
size=DefaultSize,
choices=[],
style=0,
validator=DefaultValidator,
name=ComboBoxNameStr)
其中比较重要的属性是 value 和 choices。value 表示当前选中的值,choices 是可以选中的值,也就是备选项。
下面是投票候选人的一个例子,通过 ComboBox 列出候选人名单以供用户选择。下面的完整代码:
import wx
class ComboxFrameDemo1(wx.Frame):
def __init__(self, p, t):
wx.Frame.__init__(self,
id=wx.NewId(),
parent=p,
size=(300, 128),
title=t)
panel = wx.Panel(self, -1)
self.label1 = wx.StaticText(parent=panel,
id=-1,
size=(100, 18),
label=u"请选择第一候选人:",
pos=(10, 10))
candidates = [u"张三", u"李四", u"王五", u"唐七", u"其他..."]
self.combo1 = wx.ComboBox(parent=panel,
id=-1,
size=wx.DefaultSize,
pos=(160, 10),
value="",
choices=candidates,
name=u"候选人名单")
if __name__ == '__main__':
app = wx.App(False)
frame = ComboxFrameDemo1(None, "ComboBox演示")
frame.Show(True)
app.MainLoop()
运行该程序后,显示图 1 所示的窗口。
可以使用鼠标来选中候选人,如图 2 所示。
也可以使用键盘输入任意的值,例如输入曹六如图 3 所示。