wxPython in Action(131)

13.6 本章小结

1、列表控件是wxPython用于显示列表信息的窗口部件。它比简单的列表框部 件要更复杂且有完整的特性。列表控件是类wx.ListCtrl的实例。列表控件可以显示为图标模式,每个图标下都有一个项目文本,也可以显示为带有小图 标的小图标模式等等。在列表模式中,元素按列显示,在报告模式中,以多列的格式显示列表,每列都有列标签。

2、用于列表控件的图像是由一个图像列表管理的,图像列表是一个可经由索引来访问的一个图像的数组。列表控件可以为不同的列表模式维护各自的图像列表,这使得能够容易地在模式间切换。

3、 你可以使用InsertStringItem(index,label)方法来插入文本到列表中,使用InsertImageItem(index,   imageIndex)方法插入图像到列表中。要一次做上面两件事,可以使用InsertImageStringItem(index,label,
 imageIndex)。 要对报告模式的列表添加列,可以使用InsertColumn(col,  heading, format= "wx.LIST_FORMAT_LEFT,  width=-1)方法。一旦已经添加了列后,你就可以使用SetStringItem(index,  col, label, imageId=-1)方法为新的列增加文本。

4、列表控件产生的几个事件可以被绑到程序的动作。这些事件项属于类wx.ListEvent。通常的事件类型包括EVT_LIST_Insert_ITEM, EVT_LIST_ITEM_ACTIVATED,和EVT_LIST_ ITEM_SelectED。

5、如果列表控件声明时使用了wx.LC_EDIT_LABELS标记,那么用户就可以编辑列表项的文本。编辑的确认是通过按下回车键或在列表中敲击完成的,也可以通过按下Esc键来取消编辑。

6、 你可以通过在声明列表时使用wx.LC_SORT_ASCENDING或wx.LC_SORT_DESCENDING来排序列表。这将按照项目的字符串的 顺序来排序列表。在报告模式中,这将根据0列的字符串来排序。你也可以使用SortItems(func)方法来创建你自定义的排序方法。对于报告模式的 列表,mixin类wx.lib.mixins.listctrl.ColumnSorterMixin给了你根据用户所选择的列来排序的能力。

7、 使用了标记wx.LC_VIRTUAL声明的列表控件是一个虚列表控件。这意味着它的数据是当列表中的项目被显示时动态地确定的。对于虚列表控件,你必须 覆盖OnGetItemText(item, col)方法以返回适当的文本给所显示的行和列。你也可以使用OnGetItemImage(item)和 OnGetItemAttr(item)方法来返回关于每行的图像或列表的显示属性。如果数据源的数据改变了,你可以使用RefreshItem (item)方法来更新列表的某个行或使用RefreshItems(itemFrom, itemTo)方法来更新多个行。

最终,你的数据将变得复杂得不能放在一个简单的列表中。你将会需要类似二维的电子表格样式的东西,这就是网格控件,我们将在下一章进行讨论。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值