实战wxPython/ target=_blank class=infotextkey>Python系列-039

文章插图
wxPythontigo提供了一些高级控件 。例如,树形控件、html窗口、网格控件、列表控件、或具有高级样式功能的编辑器等 。
一、wx.ListBox列表框
wx.ListBox列表框控件从一个字符串列表中选择一个或者多个字符串 。所选字符串显示在一个可以滚动的列表框中,所选中的字符串将特别标记 。列表框可以是单选 (如果选择了其中的一个项,则清除先前的选择项)或者多重选择(选择一个项的时,不影响对其他项的选择) 。
列表框元素从0开始编号,虽然元素的最大数量是无限的,但通常最好使用虚拟控件,不需要一次性将所有项添加到其中 。由于这个控件没有做优化,比如在wx.dataview.DataViewCtrl或者使用LC_VIRTUAL样式的wx.ListCtrl时,需要加载超过上百的项时,性能会有所影响 。
注意,列表框不支持除制表符以外的控制字符 。
wx.ListBox支持的窗口样式:
- wx.LB_SINGLE:单选列表 。
- wx.LB_MULTIPLE:多选列表 。
- wx.LB_EXTENDED:扩展选择列表:用户可以使用SHIFT或CTRL键以及光标移动键或鼠标来扩展选择 。
- wx.LB_HSCROLL:如果内容太多,创建水平滚动条(仅限windows) 。
- wx.LB_ALWAYS_SB:始终显示垂直滚动条 。
- wx.LB_NEEDED_SB:只在需要时创建垂直滚动条 。
- wx.LB_NO_SB:不创建垂直滚动条(仅限于wxMSW和wxGTK) 。
- wx.LB_SORT:列表框内容按字母顺序排序 。
wx.ListBox发出的事件:
- EVT_LISTBOX:当列表中的项被选中或选择发生变化时,处理wx.EVT_LISTBOX事件 。
- EVT_LISTBOX_DCLICK:当双击列表框时,处理wx.EVT_LISTBOX_DCLICK事件 。
