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 str与repr的区别
Mar 23 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
Python 将pdf转成图片的方法
Apr 23 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
pytorch AvgPool2d函数使用详解
Jan 03 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
个人评语大全
2014/05/04 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python