Python wxPython库使用wx.ListBox创建列表框示例

作者:烈风 时间:2021-12-06 21:10:56 

本文实例讲述了Python wxPython库使用wx.ListBox创建列表框。分享给大家供大家参考,具体如下:

如何创建一个列表框?

列表框是提供给用户选择的另一机制。选项被放置在一个矩形的窗口中,用户可以选择一个或多个。列表框比单选按钮占据较少的空间,当选项的数目相对少的时候,列表框是一个好的选择。然而,如果用户必须将滚动条拉很远才能看到所有的选项的话,那么它的效用就有所下降了。下图显示了一个wxPython列表框。

Python wxPython库使用wx.ListBox创建列表框示例

在wxPython中,列表框是类wx.ListBox的元素。该类的方法使你能够处理列表中的选择。

如何创建一个列表框?

显示ListBox列表框的代码


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程序设计有所帮助。

来源:https://blog.csdn.net/igolang/article/details/8838427

标签:Python,wxPython,wx.ListBox,列表框
0
投稿

猜你喜欢

  • Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

    2023-12-10 15:45:59
  • jsp include文件时的一个乱码解决方法

    2024-03-27 19:34:28
  • Python如何匹配文本并在其上一行追加文本

    2022-10-19 13:16:43
  • 初学ASP编程易犯的一个错误要注意

    2008-11-07 15:08:00
  • asp如何随机显示网站链接?

    2010-06-07 20:40:00
  • Javascript 实现的数独解题算法网页实例

    2024-02-26 15:26:16
  • Python基于回溯法子集树模板解决m着色问题示例

    2023-11-14 12:22:59
  • 使用Python paramiko模块利用多线程实现ssh并发执行操作

    2021-02-02 03:10:05
  • 详解golang碎片整理之 fmt.Scan

    2024-02-20 12:51:16
  • Python selenium 三种等待方式详解(必会)

    2021-03-13 16:03:33
  • 如何使用python获取现在的日期与时间

    2021-07-21 16:50:12
  • asp连接各种数据库代码

    2008-03-11 11:16:00
  • Python中时间datetime的处理与转换用法总结

    2022-05-03 01:23:01
  • 详解Vue调用手机相机和相册以及上传

    2024-04-27 16:13:47
  • Python标准库defaultdict模块使用示例

    2022-03-02 04:35:05
  • Python通过Pillow实现图片对比

    2023-07-12 08:25:15
  • Python matplotlib模块及柱状图用法解析

    2023-11-24 01:04:33
  • python3应用windows api对后台程序窗口及桌面截图并保存的方法

    2023-10-23 12:29:19
  • python Scrapy框架原理解析

    2022-08-07 06:17:20
  • Python类和实例的属性机制原理详解

    2022-12-12 19:47:27
  • asp之家 网络编程 m.aspxhome.com