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


Posted in Python onSeptember 03, 2018

本文实例讲述了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, '3water.com - 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中使用lambda高效操作列表的教程
Apr 24 Python
python实现将html表格转换成CSV文件的方法
Jun 28 Python
python删除列表内容
Aug 04 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 Python
python中get和post有什么区别
Jun 19 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
python3实现名片管理系统(控制台版)
Nov 29 Python
如何用python批量调整视频声音
Dec 22 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 #Python
Python中关键字global和nonlocal的区别详解
Sep 03 #Python
python leetcode 字符串相乘实例详解
Sep 03 #Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 #Python
Python实现多级目录压缩与解压文件的方法
Sep 01 #Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 #Python
Python pymongo模块常用操作分析
Sep 01 #Python
You might like
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
Python 模板引擎的注入问题分析
2017/01/01 Python
Python 文件处理注意事项总结
2017/04/10 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
python requests证书问题解决
2019/09/05 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
最新英语专业学生求职信范文
2013/09/21 职场文书
化工专业个人的求职信范文
2013/11/28 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
财经学院自荐信范文
2014/02/02 职场文书
领导干部考察材料
2014/02/08 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
招标保密承诺书
2015/01/20 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis