本文实例讲述了Python wxPython库使用wx.ListBox创建列表框。分享给大家供大家参考,具体如下:
如何创建一个列表框?
列表框是提供给用户选择的另一机制。选项被放置在一个矩形的窗口中,用户可以选择一个或多个。列表框比单选按钮占据较少的空间,当选项的数目相对少的时候,列表框是一个好的选择。然而,如果用户必须将滚动条拉很远才能看到所有的选项的话,那么它的效用就有所下降了。下图显示了一个wxPython列表框。
在wxPython中,列表框是类wx.ListBox
的元素。该类的方法使你能够处理列表中的选择。
如何创建一个列表框"htmlcode">
import wx class ListBoxFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'www.jb51.net - List Box Example', size=(380, 250)) panel = wx.Panel(self, -1) sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen'] listBox = wx.ListBox(panel, -1, (20, 20), (80, 120), sampleList, wx.LB_SINGLE) listBox.SetSelection(3) if __name__ == '__main__': app = wx.PySimpleApp() ListBoxFrame().Show() app.MainLoop()
wx.ListBox
的构造函数类似于单选框的,如下所示:
wx.ListBox(parent,
id, pos=wx.DefaultPosition,
size=wx.DefaultSize, choices=None, style=0,
validator=wx.DefaultValidator, name="listBox")
单选框和列表框的主要区别是wx.ListBox没有label属性。显示在列表中的元素放置在参数choices中,它是一个字符串的序列。列表框有三种互斥的样式,它决定用户如何从列表框中选择元素,说明在列表框的选择类型样式表中。
用户通常对于多选有一些问题,因为它们一般希望见到的是单选列表,对于多选来说可能是有挑战性的(就像单选题和多选题一样),尤其是对于那些易受困扰的用户。如果你使用了一个多选的列表,我们建议你清楚地标明该列表。
列表框的选择类型样式表
wx.LB_EXTENDED 用户可以通过使用shift并敲击鼠标来选择一定范围内的连续的选项,或使用等同功能的按键。 wx.LB_MULTIPLE 用户可以一次选择多个选项(选项可以是不连续的)。实际上,在这种情况下,列表框的行为就像是一组复选框。 wx.LB_SINGLE 用户一次只能选一个选项。实际上,在这种情况下,列表框的行为就像是一组单选按钮。
有三种控制wx.ListBox中滚动条的显示的样式,如下表所示。
列表框的滚动条类型样式表
wx.LB_ALWAYS_SB 列表框将始终显示一个垂直的滚动条,不管有没有必要。 wx.LB_HSCROLL 如果本地控支持,那么列表框在选择项太多时,将创建一个水平滚动条。 wx.LB_HSCROLL 列表框只在需要的时候显示一个垂直的滚动条。这是默认样式。
还有一个样式wx.LB_SORT
,它使得列表中的元素按字母顺序排序。
有两个专用于wx.ListBox的命令事件。EVT_LISTBOX事件在当列表中的一个元素被选择时触发(即使它是当前所选择的元素)。如果列表被双击,EVT_LISTBOX_DCLICK事件发生。
有一些专用于列表框的方法,你可以用来处理框中的项目。列表框的方法表对许多的方法作了说明。列表框中的项目索引从0开始。
一旦你有了一个列表框,自然就想把它与其它的窗口部件结合起来使用,如下拉菜单,或复选框。在下一节,我们对此作讨论。
列表框的方法表
Append(item) 把字符串项目添加到列表框的尾部。 Clear() 清空列表框。 Delete(n) 删除列表框中索引为n的项目。 Deselect(n) 在多重选择列表框中,导致位于位置n的选项取消选中。在其它样式中不起作用。 FindString(string) 返回给定字符串的整数位置,如果没有发现则返回-1。 GetCount() 返回列表中字符串的数量。 GetSelection() GetSelection()得到当前选择项的整数索引(仅对于单选列表)。对于多选列表,使用GetSelections()来返回包含所选项目的整数位置的元组。对于单选列表,GetStringSelection()返回当前选择的字符串。相应的set方法使用布尔值参数select设置指定字符串或索引选项的状态。使用这种方法改变选择不触发EVT_LISTBOX事件。 SetSelection(n, select) GetStringSelection() SetStringSelection(string, select) GetSelections() GetString(n) 得到位置n处的字符串。 SetString(n, string) 设置位置n处的字符串。 InsertItems(items, pos) 插入参数items中的字符串列表到该列表框中pos参数所指定的位置前。位置0表示把项目放在列表的开头。 Selected(n) 返回对应于索引为n的项目的选择状态的布尔值。 Set(choices) 重新使用choices的内容设置列表框。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]