Python wxPython库使用wx.ListBox创建列表框示例
作者:烈风 发布时间:2021-12-06 21:10:56
本文实例讲述了Python wxPython库使用wx.ListBox创建列表框。分享给大家供大家参考,具体如下:
如何创建一个列表框?
列表框是提供给用户选择的另一机制。选项被放置在一个矩形的窗口中,用户可以选择一个或多个。列表框比单选按钮占据较少的空间,当选项的数目相对少的时候,列表框是一个好的选择。然而,如果用户必须将滚动条拉很远才能看到所有的选项的话,那么它的效用就有所下降了。下图显示了一个wxPython列表框。
在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


猜你喜欢
- 之前写爬虫程序的时候,采用生产者和消费者的模式,利用Queue作为生产者进程和消费者进程之间的同步队列。执行程序时,总是秒退,加了断点也无法
- 最近用layer ui上传文件遇到了一个问题,我想在上传文件之前把data-id传入后台,layer文档找了一下也没有找到类似的说明,经过一
- 可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少。
- Python中的字典一、字典的特点二、创建字典创建字典用大括号表示dict1={'a':3,'b':4,
- 本文实例为大家分享了Python代码实现双链表的具体代码,供大家参考,具体内容如下双链表的每个节点有两个指针: 一个指向后一个节点,另一个指
- 写在最前最近在使用vue的时候,遇到一个需求,实现左右div可通过中间部分拖拽调整宽度,类似于这样这是我最终的实现效果还是老话,因为我不是专
- 计算交并比:交的面积除以并的面积。要求矩形框的长和宽应该平行于图片框。不然不能用这样的公式计算。原理,从一维上来理解:两条红线的距离之和减去
- 经常会遇到这样一个情况:浏览器弹出对话框,提示脚本运行时间过长,询问“停止”还是“继续”。那究竟各个浏览器是如何判断在什么时候才弹出此对话框
- 这篇文章主要介绍了Python文件操作函数用法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 全选、全不选、反选这几个功能我们经常会用到,如我们可以用在文章列表管理页面,也可以用在音乐播放页面,使用全选我们可以很方便的进行批量操作,如
- 1. 引言在使用Python的时候,通常会出现如下场景:array = [1, 2, 3, 3, 2, 1, 0, 2]获取array中元素
- 前言:不用改掉系统python2.7 ,原来是python2.7,我们还进行python2.7的保留1.编译前准备其他库的安装(使用sudo
- 引子上下文管理器是一种简化代码的有力方式,其内部也蕴含了很多Python的编程思想,今天我们就来探究一下Python的上下文管理器。大家之前
- 1.如何定位并优化慢查询sqla.根据慢日志定位慢查询sqlSHOW VARIABLES LIKE '%query%' &
- 本文实例为大家分享了python实现递归查找某个路径下所有文件中的中文字符,供大家参考,具体内容如下# -*- coding: utf-8
- 1、Introduction之前写过2篇文章,分别是:Mysql主从同步的原理 Myql主从同步实战 基于此,我们再实
- 序言:刚结束公司的三个月试用期,意味着我即将正式步入社会成为广大从事IT行业的一员。作为一个编程小白,无论从技术层面还是知识层面都是比较薄弱
- 如下所示:class A(): def test_a(self): self.m ="hel
- 当1980年Three Rivers公司第一次推出图形用户界面Perq,产生GUI这个概念的时候,不知道他们有没有想过今天图形界面设计竟然会
- Ruby中有一个很方便的Struct类,用来实现结构体。这样就不用费力的去定义一个完整的类来仅仅用作访问属性。class Dog <