Python tkinter (6) Listbox
Python的标准Tk GUI工具包的接口
tkinter系列文章
python tkinter窗口简单实现
Python tkinter (1) —— Label标签
Python tkinter (2) —— Button标签
Python tkinter (3) —— Entry标签
Python tkinter (4) —— Text控件
GUI
目录
Listbox
创建listbox
添加元素
添加到开始
添加到最后
删除元素
删除单个
删除多个
选中元素
取消选中元素
获取列表元素个数
获取值
返回选中
判断是否选中
绑定变量
打印当前列表选项
设置选项
绑定事件
连选
绑定滚动条
支持多选
总结
Listbox
列表框控件,可以包含一个或者多个文本框
作用:在listbox控件的小窗口显示一个字符串
创建listbox
创建listbox控件并添加几个元素
示例如下:
import tkintertk = tkinter.Tk()
tk.title('listbox示例')
tk.geometry('300x200+200+20')'''
列表框控件,可以包含一个或者多个文本框
作用:在listbox控件的小窗口显示一个字符串
'''# 1.创建一个listbox,添加几个元素
list1 = tkinter.Listbox(tk, selectmode=tkinter.BROWSE)
list1.pack()
for item in ['从明天起', '做一个幸福的人', '喂马', '劈柴', '周游世界']:# 按照顺序添加list1.insert(tkinter.END, item)
效果如下:
添加元素
两种添加方式
添加到开始
使用insert方法,参数为tkinter.ACTIVE和要添加的元素。
示例如下:
# 在开始添加
list1.insert(tkinter.ACTIVE, '《面朝大海春暖花开》')
添加到最后
还是使用insert方法,参数为tkinter.END和要添加的元素(可为字符串或列表)。
示例如下:
# 添加元素到最后
list1.insert(tkinter.END, '愿你在尘世获得幸福')
# 将列表当做一个元素添加
list1.insert(tkinter.END, ['我只愿面朝大海', ',', '春暖花开'])
删除元素
通过指定元素索引来删除相应元素
删除单个
示例如下:
list1.delete(1)
删除多个
Delete有两个参数,一个起始位置索引,第二个为终止位置索引。
当指定第二个元素时,将删除从起始位置到终止位置的所有元素。
示例如下:
list1.delete(1, 3)
选中元素
参数1为开始的索引,参数2为结束的索引;
如果不指定参数2,只选中第一个索引出的内容。
示例如下:
list1.select_set(1)
list1.select_set(2, 4)
效果如下:
取消选中元素
取消选中:参数1为开始的索引,参数2为结束的索引;
如果不指定参数2,只取消第一个索引出的内容。
示例如下:
list1.select_clear(3)
list1.select_clear(1, 2)
注意:测试效果时,需与选中结合使用。
获取列表元素个数
示例如下:
print(list1.size())
获取值
获取值:从列表中取值 参数1为开始的索引,参数2为结束的索引;
如果不指定参数2,只获取第一个索引出的内容。
示例如下:
print(list1.get(1, 3))
# 执行结果
# ('做一个幸福的人', '喂马', '劈柴')
返回选中
返回当前选中的索引项,元组格式。
示例如下:
print(list1.curselection())
判断是否选中
判断一个选项是否被选中,返回True或False。
示例如下:
print(list1.select_includes(3))
绑定变量
创建一个字符串变量与listbox控件进行绑定,
SINGLE与BORWSE相似,但是不支持鼠标按下后移动。
示例如下:
import tkintertk = tkinter.Tk()
tk.title('listbox示例')
tk.geometry('300x200+200+20')# 绑定变量
lv = tkinter.StringVar()
list1 = tkinter.Listbox(tk, selectmode=tkinter.SINGLE, listvariable=lv)
list1.pack()for item in ['从明天起', '做一个幸福的人', '喂马', '劈柴', '周游世界']:# 按照顺序添加list1.insert(tkinter.END, item)
打印当前列表选项
通过绑定的变量可以获取列表中的选项内容。
示例如下:
print(lv.get())
# 执行结果
# ('从明天起', '做一个幸福的人', '喂马', '劈柴', '周游世界')
设置选项
通过操作绑定变量的set方法,可以更改之前设置的列表元素。
示例如下:
lv.set(('选项1', '选项2'))
绑定事件
对列表控件绑定一个鼠标双击事件。
示例如下:
def my_print(event):print(list1.get(list1.curselection()))# 双击按钮事件
list1.bind('<Double-Button-1>', my_print)
当对列表元素双击后,会在控制台打印出选中的元素。
效果如下:

连选
EXTENDED 可以使listbox支持shift和control;
按住shitt,可以实现连选;按住contro1,可以实现多选。
示例如下:
import tkintertk = tkinter.Tk()
tk.title('listbox示例')
tk.geometry('300x200+200+20')list1 = tkinter.Listbox(tk, selectmode=tkinter.EXTENDED)
list1.pack()for item in ['从明天起', '做一个幸福的人', '喂马', '劈柴', '周游世界']:# 按照顺序添加list1.insert(tkinter.END, item)
绑定滚动条
在内容增多后,可以绑定滚动条来下划查看内容。
示例如下:
import tkintertk = tkinter.Tk()
tk.title('listbox示例')
# tk.geometry('300x200+200+20')
# 滚动条 (内容增多时增加滚动条)
scroll = tkinter.Scrollbar(tk)
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
list1 = tkinter.Listbox(tk, selectmode=tkinter.EXTENDED)
# 格外给属性赋值
scroll['command'] = list1.yview()for item in ['《面朝大海春暖花开》', '从明天起,关心粮食和蔬菜','我有一所房子,面朝大海,春暖花开','从明天起,和每一个亲人通信','告诉他们我的幸福','那幸福的闪电告诉我的','我将告诉每一个人','给每一条河每一座山取一个温暖的名字','陌生人,我也为你祝福','愿你有一个灿烂的前程','愿你有情人终成眷属','愿你在尘世获得幸福','我只愿面朝大海,春暖花开']:list1.insert(tkinter.END, item)list1.configure(yscrollcommand=scroll.set)
list1.pack(side=tkinter.LEFT, fill=tkinter.BOTH)tk.mainloop()
效果如下:

支持多选
通过更改listbox控件属性为MULTIPLE,可通过鼠标点击进行多选和取消。
示例如下:
import tkintertk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')# MULTIPLE 支持多选
list1 = tkinter.Listbox(tk, selectmode=tkinter.MULTIPLE)for item in ['《面朝大海春暖花开》', '从明天起,关心粮食和蔬菜','我有一所房子,面朝大海,春暖花开','从明天起,和每一个亲人通信','告诉他们我的幸福','那幸福的闪电告诉我的','我将告诉每一个人','给每一条河每一座山取一个温暖的名字','陌生人,我也为你祝福','愿你有一个灿烂的前程','愿你有情人终成眷属','愿你在尘世获得幸福','我只愿面朝大海,春暖花开']:list1.insert(tkinter.END, item)
list1.pack()tk.mainloop()
效果为:

总结
本文主要是Python tkinter Listbox控件介绍及使用示例。
相关文章:
Python tkinter (6) Listbox
Python的标准Tk GUI工具包的接口 tkinter系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Python tkinter (2) —— Button标签 Python tkinter (3) —— Entry标签 Python tkinter (4) —— Text控件 GUI 目录 Listbox 创建listbox 添加元素…...
优雅的python(二)
🌈个人主页:小田爱学编程 🔥 系列专栏:c语言从基础到进阶 🏆🏆关注博主,随时获取更多关于c语言的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x…...
Git安装详细步骤
目录 1、双击安装包,点击NEXT编辑 2、更改安装路径,点击NEXT 3、选择安装组件 4、选择开始菜单页 5、选择Git文件默认的编辑器 6、调整PATH环境 7、选择HTTPS后端传输 8、配置行尾符号转换 9、配置终端模拟器与Git Bash一起使用 10、配置额外…...
首发:2024全球DAO组织发展研究
作者,张群(专注DAO及区块链应用研究,赛联区块链教育首席讲师,工信部赛迪特邀资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问) DAO(去中心化自治组织&am…...
【大数据】详解 Flink 中的 WaterMark
详解 Flink 中的 WaterMark 1.基础概念1.1 流处理1.2 乱序1.3 窗口及其生命周期1.4 Keyed vs Non-Keyed1.5 Flink 中的时间 2.Watermark2.1 案例一2.2 案例二2.3 如何设置最大乱序时间2.4 延迟数据重定向 3.在 DDL 中的定义3.1 事件时间3.2 处理时间 1.基础概念 1.1 流处理 流…...
【数据结构1-2】二叉树
树形结构不仅能表示数据间的指向关系,还能表示出数据的层次关系,而有很明显的递归性质。因此,我们可以利用树的性质解决更多种类的问题。 但是在平常的使用中,我们并不需要使用这么复杂的结构,只需要建立一个包含int r…...
ajax点击搜索返回所需数据
html 中body设置(css设置跟进自身需求) <p idsearch_head>学生信息查询表</p> <div id"div_1"> <div class"search_div"> <div class"search_div_item"> …...
Redis6基础知识梳理~
初识NOSQL: NOSQL是为了解决性能问题而产生的技术,在最初,我们都是使用单体服务器架构,如下所示: 随着用户访问量大幅度提升,同时产生了大量的用户数据,单体服务器架构面对着巨大的压力 NOSQL解…...
在Python中如何使用集合进行元素操作
目录 1. 创建集合 2. 添加或删除元素 3. 集合运算 4. 其他集合操作 总结 在Python中,集合(set)是一种基本的数据结构,用于存储无序且唯一的元素。这意味着集合中的每个元素都是独一无二的,且集合不保持任何元素的…...
2024年阿里云幻兽帕鲁Palworld游戏服务器优惠价格表
自建幻兽帕鲁服务器租用价格表,2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器,配置分为4核16G和4核32G服务器,4核16G配置32.25元/1个月、10M带宽66.30元/1个月、4核32G配置113.24元/1个月,4核32G配置3个月339.72元。ECS云服务…...
Atlassian Confluence Data Center and Server 权限提升漏洞复现(CVE-2023-22515)
0x01 产品简介 Atlassian Confluence是一款由Atlassian开发的企业团队协作和知识管理软件,提供了一个集中化的平台,用于创建、组织和共享团队的文档、知识库、项目计划和协作内容。是面向大型企业和组织的高可用性、可扩展性和高性能版本。 0x02 漏洞概述 Atlassian Confl…...
打开 IOS开发者模式
前言 需要 1、辅助设备:苹果电脑; 2、辅助应用:Xcode; 3、准备工作:苹果手机 使用数据线连接 苹果电脑; 当前系统版本 IOS 17.3 通过Xcode激活 两指同时点击 Xcode 显示选择,Open Develop…...
【C语言刷题系列】交换两个变量的三种方式
文章目录 1.使用临时变量(推荐) 2.相加和相减的方式(值较大时可能丢失数据) 3.按位异或运算 本文所属专栏C语言刷题_倔强的石头106的博客-CSDN博客 两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的…...
架构师之路(十五)计算机网络(网络层协议)
前置知识(了解):计算机基础。 作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 ARP协议 地址解…...
【JSON2WEB】03 go的模板包html/template的使用
Go text/template 是 Go 语言标准库中的一个模板引擎,用于生成文本输出。它使用类似于 HTML 的模板语言,可以将数据和模板结合起来,生成最终的文本输出。 Go html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的…...
3 JS类型 值和变量
计算机对value进行操作。 value有不同的类型。每种语言都有其自身的类型集合。编程语言的类型集是该编程语言的基本特性。 value需要保存一个变量中。 变量的工作机制是变成语言的另一个基本特性。 3.1概述和定义 JS类型分为: 原始类型和对象类型。 原始类型&am…...
【Android】实现简易购物车功能(附源码)
先上结果: 代码: 首先引入图片加载: implementation com.github.bumptech.glide:glide:4.15.1配置权限清单: <!-- 网络权限 --><uses-permission android:name"android.permission.INTERNET"/><uses…...
使用Excel计算--任务完成总工作日时间段
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 计算任务完成时间周期,和计算金钱一样,是一个比较细致严谨的工作。 通常,我们可能以为,完成周期形如: 任务完成周期 任务结束时间 - 任务开始时间 但是…...
.NET高级面试指南专题一【委托和事件】
在C#中,委托(Delegate)和事件(Event)是两个重要的概念,它们通常用于实现事件驱动编程和回调机制。 委托定义: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个…...
基于springboot+vue的在线教育系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
