wxPython - ListBox & ListCtrl 类
-
简述
wx.ListBox 小部件呈现一个可垂直滚动的字符串列表。默认情况下,列表中的单个项目是可选的。但是,它可以自定义为多选。ListCtrl 小部件是一个高度增强的列表显示和选择工具。报告视图、列表视图或图标视图中可以显示多列列表。ListBox 构造函数具有以下定义 -Choices 参数是用于填充列表的字符串列表。wx.ListBox 对象可使用以下样式参数进行自定义 -序列号 参数及说明 1 wxLB_SINGLE单选名单2 wxLB_MULTIPLE多选列表:用户可以打开和关闭多个项目3 wxLB_EXTENDED扩展选择列表 - 用户可以通过使用 SHIFT 或 CTRL 键以及光标移动键或鼠标来扩展选择4 wxLB_HSCROLL如果内容太宽,则创建水平滚动条5 wxLB_ALWAYS_SB始终显示垂直滚动条6 wxLB_NEEDED_SB仅在需要时创建垂直滚动条7 wxLB_SORT列表框内容按字母顺序排序wx.ListBox 类方法 -序列号 方法和描述 1 DeSelect()取消选择列表框中的项目2 InsertItem()在指定位置插入给定字符串3 SetFirstItem()将给定索引处的字符串设置为列表中的第一个4 IsSorted()如果使用 wxzL?B_SORT 样式,则返回 true5 GetString()返回所选索引处的字符串6 SetString()为给定索引处的项目设置标签EVT_LISTBOX BINDER在选择列表中的项目或编程时更改时的项目时触发处理程序。由 EVT_LISTBOX_DCLICK 绑定的处理函数在列表框项上发生双击事件时被调用。 -
例子
在下面的例子中,一个 ListBox 控件和一个 TextCtrl 对象分别被放置在一个水平框尺寸器的左右部分。ListBox 用语言[] 列表对象中的字符串填充。两个对象被放置在一个水平的 box sizer 中。ListBox 控件使用 EVT_LISTBOX 绑定器链接到 onListBox() 处理程序。处理程序将选定的字符串附加到右侧的多行 TextCtrl 中。完整的代码如下 -上面的代码产生以下输出 -wx.ListCtrl是一个增强的,因此,更复杂的小部件。ListBox 只显示一列,ListCtrl 可以包含多列。ListCtrl 小部件的外观由以下样式参数控制 -序列号 参数及说明 1 wx.LC_LIST多列列表视图,带有可选的小图标。自动计算列2 wx.LC_REPORT单列或多列报告视图,带有可选标题3 wx.LC_VIRTUAL该应用程序按需提供项目文本。只能与 wxLC_REPORT 一起使用4 wx.LC_ICON大图标视图,带有可选标签5 wx.LC_SMALL_ICON小图标视图,带有可选标签6 wx.LC_ALIGN_LEFT图标左对齐7 wx.LC_EDIT_LABELS标签是可编辑的 - 编辑开始时将通知应用程序8 wx.LC_NO_HEADER报告模式下没有标题9 wx.LC_SORT_ASCENDING按升序排序10 wx.LC_SORT_DESCENDING按降序排序11 wx.LC_HRULES在报告模式下的行之间绘制浅色水平线12 wx.LC_VRULES在报告模式下在列之间绘制浅色垂直规则 -
例子
报告视图中的 ListCtrl 小部件在以下示例中构建。标题列由 InsertColumn() 方法创建,该方法采用列号、标题、样式和宽度参数。一个元组列表,每个包含三个字符串,称为 player[] 存储用于填充 ListCtrl 对象的列的数据。新行以 InsertStringItem() 方法开始,该方法返回当前行的索引。使用 sys.maxint 给出最后一行之后的行号。使用索引,其他列由 SetStringItem() 方法填充。该示例的完整代码是 -上面的代码产生以下输出。玩家的数据显示在报告视图中 -