wx.ListBox 的构造函数类似于单选框的,如下所示:
Python代码
wx.ListBox(parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, choices=None, style=0, validator=wx.DefaultValidator, name="listBox")
单选框和列表框的主要区别是wx.ListBox 没有label 属性。显示在列表中的元素放置在参数choices 中,它是一个字符串的序列。列表框有三种互斥的样式,它决定用户如何从列表框中选择元素,说明在表7.12中。
用户通常对于多选有一些问题,因为它们一般希望见到的是单选列表,对于多选来说可能是有挑战性的(就像单选题和多选题一样),尤其是对于那些易受困扰的用户。如果你使用了一个多选的列表,我们建议你清楚地标明该列表。
表7.12 列表框的选择类型样式
wx.LB_EXTENDED :用户可以通过使用shift 并敲击鼠标来选择一定范围内的连续的选项,或使用等同功能的按键。
wx.LB_MULTIPLE :用户可以一次选择多个选项(选项可以是不连续的)。实际上,在这种情况下,列表框的行为就像是一组复选框。
wx.LB_SINGLE :用户一次只能选一个选项。实际上,在这种情况下,列表框的行为就像是一组单选按钮。
有三种控制wx.ListBox 中滚动条的显示的样式,如表7.13所示。
表7.13 列表框的滚动条类型样式
wx.LB_ALWAYS_SB :列表框将始终显示一个垂直的滚动条,不管有没有必要。
wx.LB_HSCROLL :如果本地控支持,那么列表框在选择项太多时,将创建一个水平滚动条。
wx.LB_HSCROLL :列表框只在需要的时候显示一个垂直的滚动条。这是默认样式。
还有一个样式wx.LB_SORT ,它使得列表中的元素按字母顺序排序。
有两个专用于wx.ListBox 的命令事件。EVT_LISTBOX 事件在当列表中的一个元素被选择时触发(即使它是当前所选择的元素)。如果列