广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中Tkinter组件Listbox的具体使用
  • 586
分享到

Python中Tkinter组件Listbox的具体使用

2024-04-02 19:04:59 586人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录何时使用 Listbox 组件?用法参数方法Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件

Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件的配置,用户可以从列表中选择一个或多个选项。

何时使用 Listbox 组件?

Listbox 组件通常被用于显示一组文本选项,Listbox 组件跟 Checkbutton 和 Radiobutton 组件类似,不过 Listbox 是以列表的形式来提供选项的(后两个是通过按钮的形式)。

用法

当你创建一个 Listbox 组件的时候,它是空的,所以第一件要做的事就是添加一行或多行文本进去。我们使用 insert() 方法添加文本,该方法有两个参数:第一个参数是插入的索引号,第二个参数是插入的字符串。索引号通常是项目的序号(0 是列表中第一项的序号)。

不过你也可以使用一些特殊的索引号:比如 ACTIVE 表示选中的项目(如果 Listbox 允许多选,那么它表示最后一个被选中的项目);又如 END 表示 Listbox 的最后一行,所以当要插入一个项目到列表时可以使用 END:

import tkinter as tk
 
master = tk.Tk()
 
# 创建一个空列表
theLB = tk.Listbox(master)
theLB.pack()
 
# 往列表里添加数据
for item in ["鸡蛋", "鸭蛋", "鹅蛋", "李狗蛋"]:
        theLB.insert("end", item)
 
 
master.mainloop()

使用 delete() 方法删除列表中的项目,最常用的操作是删除列表中的所有项目(更新列表时你需要做的事儿):

listbox.delete(0, "end")
listbox.insert("end", newitem) #插入新的项目

当然你也可以删除指定的项目,下边例子使用一个独立按钮来删除 ACTIVE 状态的项目:

import tkinter as tk
 
master = tk.Tk()
 
# 创建一个空列表
theLB = tk.Listbox(master)
theLB.pack()
 
# 往列表里添加数据
for item in ["鸡蛋", "鸭蛋", "鹅蛋", "李狗蛋"]:
        theLB.insert("end", item)
        
theButton = tk.Button(master, text="删除", command=lambda x=theLB: x.delete("active"))
theButton.pack()
 
master.mainloop()

     

Listbox 组件根据 selectmode 选项提供了四种不同的选择模式:"single"(单选)、"browse"(也是单选,但拖动鼠标或通过方向键可以直接改变选项)、"multiple"(多选)和 "extended"(也是多选,但需要同时按住 Shift 键或 Ctrl 键或拖拽鼠标实现)。默认是 "browse"。

参数

Listbox(master=None, **options) (class)

master -- 父组件

**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项含义
background1. 设置背景颜色
2. 默认值由系统指定
bg跟 background 一样
borderwidth1. 指定 Listbox 的边框宽度
2. 默认值由系统指定,通常是 2 像素
bd跟 borderwidth 一样
cursor1. 指定当鼠标在 Listbox 上飘过的时候的鼠标样式
2. 默认值由系统指定
exportselection1. 指定选中的项目文本是否可以被复制到剪贴板
2. 默认值是 True
3. 可以修改为 False 表示不允许复制项目文本
font1. 指定 Listbox 中文本的字体
2. 默认值由系统指定
foreground1. 设置 Listbox 的文本颜色
2. 默认值由系统指定
fg跟 foreground 一样
height1. 设置 Listbox 显示的行数(不是像素)
2. 默认值是 10
highlightbackground1. 指定当 Listbox 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定,通常是标准背景颜色
highlightcolor1. 指定当 Listbox 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightthickness1. 指定高亮边框的宽度
2. 默认值是 1
listvariable1. 指向一个 StringVar 类型的变量,该变量存放 Listbox 中所有的项目
2. 在 StringVar 类型的变量中,用空格分隔每个项目,例如 var.set("鸡蛋 鸭蛋 鹅蛋 李狗蛋")
relief1. 指定边框样式
2. 默认值是 "sunken"
selectbackground1. 指定当某个项目被选中的时候背景颜色
2. 默认值由系统指定
selectborderwidth1. 指定当某个项目被选中的时候边框的宽度
2. 默认是由 selectbackground 指定的颜色填充,没有边框
3. 如果设置了此选项,Listbox 的每一项会相应变大,被选中项为 "raised" 样式
selectforeground1. 指定当某个项目被选中的时候文本颜色
2. 默认值由系统指定
selectmode1. 决定选择的模式
2. 四种不同的选择模式:"single"(单选)、"browse"(也是单选,但拖动鼠标或通过方向键可以直接改变选项)、"multiple"(多选)和 "extended"(也是多选,但需要同时按住 Shift 键或 Ctrl 键或拖拽鼠标实现)
3. 默认是 "browse"
setgrid1. 指定一个布尔类型的值,决定是否启用网格控制
2. 默认值是 False
takefocus1. 指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来)
2. 默认值是 True
width1. 设置 Listbox 的宽度(单位是文本单元)
2. 文本单元是英文字母的平均宽度(所以如果该选项设置为 2,那么是无法容纳"ww"这两个宽度大于平均宽度的字母的)
3. 默认值是 20
xscrollcommand1. 为 Listbox 组件添加一条水平滚动条
2. 将此选项与 Scrollbar 组件相关联即可
yscrollcommand1. 为 Listbox 组件添加一条垂直滚动条
2. 将此选项与 Scrollbar 组件相关联即可

方法

activate(index)
-- 将给定索引号对应的选项激活(在其文本下方画一条下划线)

bbox(index)
-- 返回给定索引号对应的选项的边框
-- 返回值是一个以像素为单位的 4 元祖表示边框:(xoffset, yoffset, width, height)
-- xoffset 和 yoffset 表示距离左上角的偏移位置
-- 返回的 width 是文本的实际宽度(像素为单位)
-- 如果指向的选项是不可见的,那么返回值是 None

curselection()
-- 返回一个元组,包含被选中的选项的序号(从 0 开始)
-- 如果没有选中任何选项,返回一个空元组

delete(first, last=None)
-- 删除参数 first 到 last 范围内(包含 first 和 last)的所有选项
-- 如果忽略 last 参数,表示删除 first 参数指定的选项

get(first, last=None)
-- 返回一个元组,包含参数 first 到 last 范围内(包含 first 和 last)的所有选项的文本
-- 如果忽略 last 参数,表示返回 first 参数指定的选项的文本

index(index)
-- 返回与 index 参数相应的选项的序号(例如 lb.index("end"))

insert(index, *elements)
-- 添加一个或多个项目到 Listbox 中
-- 使用 lb.insert("end") 添加新选项到末尾

itemcget(index, option)
-- 获得 index 参数指定的项目对应的选项(由 option 参数指定)

itemconfig(index, **options)
-- 设置 index 参数指定的项目对应的选项(由可变参数 **option 指定)

nearest(y)
-- 返回与给定参数 y 在垂直坐标上最接近的项目的序号

scan_dragto(x, y)
-- 见下方 scan_mark(x, y)

scan_mark(x, y)
-- 使用这种方式来实现 Listbox 内容的滚动
-- 需要将鼠标按钮事件及当前鼠标位置绑定到 scan_mark(x, y) 方法,然后再将 <motion> 事件及当前鼠标位置绑定到 scan_dragto(x, y) 方法,就可以实现 Listbox 在当前位置和 sacn_Mack(x, y) 指定的位置 (x, y) 之间滚动

see(index)
-- 调整列表框的位置,使得 index 参数指定的选项是可见的

select_anchor(index)
-- 与 selection_anchor(index) 相同,见下方解释

select_clear(first, last=None)
-- 与 selection_clear(first, last=None) 相同,见下方解释

select_includes(index)
-- 与 selection_includes(index) 相同,见下方解释

select_set(first, last=None)
-- 与 selection_set(first, last=None) 相同,见下方解释

selection_anchor(index)
-- 在 index 参数的位置下一个锚点,此后你就可以通过特殊索引 "anchor" 访问

selection_clear(first, last=None)
-- 取消参数 first 到 last 范围内(包含 first 和 last)选项的选中状态
-- 如果忽略 last 参数,则只取消 first 参数指定选项的选中状态

selection_includes(index)
-- 返回 index 参数指定的选项的选中状态
-- 返回 1 表示选中,返回 0 表示未选中

selection_set(first, last=None)
-- 设置参数 first 到 last 范围内(包含 first 和 last)选项为选中状态
-- 如果忽略 last 参数,则只设置 first 参数指定选项为选中状态

size()
-- 返回 Listbox 组件中选项的数量

xview(*args)
-- 该方法用于在水平方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现(具体操作参考:Scrollbar)
-- 如果第一个参数是 "moveto",则第二个参数表示滚动到指定的位置:0.0 表示最左端,1.0 表示最右端
--如果第一个参数是 "scroll",则第二个参数表示滚动的数量,第三个参数表示滚动的单位(可以是 "units" 或 "pages"),例如:xview("scroll", 3, "pages")表示向右滚动三行

xview_moveto(fraction)
-- 跟 xview("moveto", fraction) 一样

xview_scroll(number, what)
-- 跟 xview("scroll", number, what) 一样

yview(*args)
-- 该方法用于在垂直方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现(具体操作参考:Scrollbar)
-- 如果第一个参数是 "moveto",则第二个参数表示滚动到指定的位置:0.0 表示最顶端,1.0 表示最底端
-- 如果第一个参数是 "scroll",则第二个参数表示滚动的数量,第三个参数表示滚动的单位(可以是 "units" 或 "pages"),例如:yview("scroll", 3, "pages") 表示向下滚动三页

yview_moveto(fraction)
-- 跟 yview("moveto", fraction) 一样

yview_scroll(number, what)
-- 跟 yview("scroll", number, what) 一样

到此这篇关于python中Tkinter组件Listbox的具体使用的文章就介绍到这了,更多相关Python Tkinter Listbox内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中Tkinter组件Listbox的具体使用

本文链接: https://www.lsjlt.com/news/162203.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中Tkinter组件Listbox的具体使用
    目录何时使用 Listbox 组件?用法参数方法Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件...
    99+
    2022-11-12
  • Python中Tkinter组件Button的具体使用
    目录简介何时使用 Button 组件?用法参数方法简介 Button(按钮)组件用于实现各种各样的按钮。Button 组件可以包含文本或图像,你可以将一个 Python 的函数或方法...
    99+
    2022-11-12
  • Python中Tkinter组件Frame的具体使用
    目录何时使用 Frame 组件?用法参数Frame(框架)组件是在屏幕上的一个矩形区域。Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充。 何时使用 Frame 组...
    99+
    2022-11-12
  • Python中Tkinter组件Menu的具体使用
    目录何时使用 Menu 组件?用法参数方法Menu(菜单)组件用于实现顶级菜单、下拉菜单和弹出菜单。 何时使用 Menu 组件? Menu 组件通常被用于实现应用程序上的各种菜单,由...
    99+
    2022-11-12
  • Tkinter组件Checkbutton的具体使用
    目录何时使用 Checkbutton 组件?用法参数方法Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个...
    99+
    2022-11-12
  • Tkinter组件Entry的具体使用
    目录何时使用 Entry 组件?用法参数方法关于验证详解Entry(输入框)组件通常用于获取用户的输入文本。 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如...
    99+
    2022-11-12
  • Tkinter 组件Scrollbar的具体使用
    目录何时使用 Scrollbar 组件?用法参数方法Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条。Scrollbar 组件常常被用...
    99+
    2022-11-12
  • python具名元组(namedtuple)的具体使用
    目录具名元组元组操作属性排序与字典比较数据类dataclass修饰继承NamedTuplecollections.namedtuple用于构造带字段名的元组。对应类型为typing....
    99+
    2023-03-21
    python具名元组
  • vba中ListBox控件的使用
    在VBA中,ListBox控件是一种用于显示和选择列表项的常见控件。以下是ListBox控件的常见用法:1. 添加列表项:可以使用`...
    99+
    2023-09-12
    vba
  • iOS弹幕组件LNDanmakuMaster的具体使用
    LNDanmakuMaster是一个轻量的弹幕播放器,通过:创建播放器->创建轨道->添加弹幕的方式进行弹幕播放,提供丰富轨道样式的同时也支持自定义轨道;对传入的弹幕的视...
    99+
    2022-05-25
    iOS 弹幕组件 LNDanmakuMaster
  • 使用Python中Tkinter模块的Treeview 组件显示ini文件操作
    前言: Tkinter模块的Treeview组件类似于Dev中的treelist控件,但前者还可以当做树控件和表格控件使用,虽然功能可能没有dev和winform控件那么强大,但是在...
    99+
    2022-11-11
  • Python数组在List中的具体应用
    这篇文章主要讲解了“Python数组在List中的具体应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python数组在List中的具体应用”吧!跟数组很像,支持直接利用下标的访问方式;同...
    99+
    2023-06-17
  • Python中collections.Counter()的具体使用
    目录Counter类创建计数值的访问与缺失的键计数器的更新键的删除elements()most_common([n])fromkeys浅拷贝copy算术和集合操作常用操作Counter类 Counter类的目的是用...
    99+
    2022-06-02
    Python collections.Counter()
  • python中pywifi的具体使用
    目录写在前面pywifi常量接口wifi连接代码写在前面 无线AP(Access Point):即无线接入点 python的wifi管理模块叫pywifi 安装 pip instal...
    99+
    2023-03-06
    python pywifi
  • C/C++QtToolBar菜单组件的具体使用
    ToolBar工具栏在所有窗体应用程序中都广泛被使用,使用ToolBar可以很好的规范菜单功能分类,用户可根据菜单栏来选择不同的功能,Qt中默认自带ToolBar组件,当我们以默认方...
    99+
    2022-11-12
  • C/C++QtQChart绘图组件的具体使用
    QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView模式实现,其核心是QChartView和QChart...
    99+
    2022-11-12
  • C/C++QtQThread线程组件的具体使用
    QThread库是QT中提供的跨平台多线程实现方案,使用时需要继承QThread这个基类,并重写实现内部的Run方法,由于该库是基本库,默认依赖于QtCore.dll这个基础模块,在...
    99+
    2022-11-12
  • Python IO文件管理的具体使用
    目录文件操作python文件操作的两种模式编码格式的了解open函数的使用文件的写入(写入模式)文件的读取(读取模式)文件内容追加(追加模式)字节流的转换存储二进制的字节流上下文管理...
    99+
    2022-11-13
  • Thinkphp6.0中间件的具体使用
    目录全局中间件应用中间件路由中间件控制器中间件中间件传参0中间件分为系统中间件和应用中间件,系统中间件为核心框架内置的中间件,应用中间件是在应用里面创建的中间件。 中间件的主要应用场景可以包括对HTTP请求的数据过滤、权限检测、请求拦截等行...
    99+
    2021-01-07
    Thinkphp6.0中间件 Thinkphp 中间件
  • Driver.js前端引导页组件的具体使用
    目录一、介绍二、官方地址三、使用方法四、效果演示五、使用感受一、介绍 Driver.jsPowerful, highly customizable vanilla JavaScrip...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作