Tkinter教程之Listbox篇

【tkinter组件专栏】Listbox:列表框,一个一个排好队 tkinter窗口组件之Listbox,提供可选择的选项列表 阅读详情
AI摘要

本文详细介绍了 Tkinter 中 Listbox 控件的使用方法,包括创建、添加、删除项,以及如何处理选中和绑定事件等核心功能。

#Tkinter教程之Listbox篇
#
Listbox为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选

'''1.创建一个Listbox,向其中添加三个item'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
lb.pack()
root.mainloop()

'''2.创建一个可以多选的Listbox,使用属性selectmaod'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root,selectmode = MULTIPLE)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
lb.pack()
root.mainloop()
# 依次点击这三个item,均显示为选中状态。
#
 属性MULTIPLE允许多选,每次点击item,它将改变自己的当前选状态,与Checkbox有点相似

'''3这个属性selectmode还可以设置为BROWSE,可以通过鼠标来移动Listbox中的选中位置(不是移动item),这个属性也是Listbox在默认设置的值,这个程序与1.程序运行的结果的一样的。'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root,selectmode = BROWSE)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
lb.pack()
root.mainloop()
#使用鼠标进行拖动,可以看到选中的位置随之变化。
#
 与BROWSE相似 的为SINGLE,但不支持鼠标移动选中位置。
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root,selectmode = BROWSE)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
lb.pack()
root.mainloop()
#使用鼠标进行拖动,没有任何变化
'''4.使用selectmode  = EXPANDED使用Listbox来支持Shift和Control。'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root,selectmode = EXTENDED)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
lb.pack()
root.mainloop()
#运行程序,点中“python",shift + 点击"widget",会选中所有的item
#
运行程序,点中"python",control + 点击"widget",会选中python和widget,第二项tkinter处于非选中状态

'''5.向Listbox中添加一个item'''
# 以上的例子均使用了insert来向Listbox中添加 一个item,这个函数有两个属性一个为添加的索引值,另一个为添加的项(item)
#
  有两个特殊的值ACTIVE和END,ACTIVE是向当前选中的item前插入一个(即使用当前选中的索引作为插入位置);END是向
#
  Listbox的最后一项添加插入一项
#
 先向Listbox中追加三个item,再在Listbox开始添加三项
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for item in ['python','tkinter','widget']:
    lb.insert(END,item)
#只添加一项将[]作为一个item
#
lb.insert(0,['linux','windows','unix'])
#
添加三项,每个string为一个item
lb.insert(0,'linux','windows','unix')
lb.pack()
root.mainloop()
'''6.删除Listbox中的项,使用delete,这个函数也有两个参数,第一个为开始的索引值;第二个为结束的索引值,如果不指定则只删除第一个索引项。'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i))
lb.delete(
1,3)
lb.pack()
root.mainloop()
#运行程序,只有值0456789,1-3被删除
#
删除全部内容,使用delete指定第一个索引值0和最后一个参数END,即可
#
lb.delete(0,END)
'''7.选中操作函数,使用函数实现。selection_set函数有两个参数第一个为开始的索引;第二个为结束的索引,如果不指定则只选中第一个参数指定的索引项'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i))
lb.selection_set(0,
10)
lb.pack()
root.mainloop()
#  程序运行结果,选中了所有的项。 此代码并未指定Listbox为MULTIPLE或EXTENDED,查通过selection_set仍旧可以对Listbox
#
进行操作。

#与之相对的便是取消选中的函数了,参数与selection_set在参数相同,如下代码取消索引从0-3在状态
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i))
lb.selection_set(0,
10)
lb.selection_clear(0,
3)
lb.pack()
root.mainloop()

'''8.得到当前Listbox中的item个数'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i))
lb.delete(
3)
print lb.size()
lb.pack()
root.mainloop()
#首先向Listbox中添加 了10个item,然后删除索引为3在item,最后的打印结果为9,即当前的Listbox中只有9项

'''9.返回指定索引的项'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i
*100))
print lb.get(3)
lb.pack()
root.mainloop()
#返回值为300
#
get也为两个参数的函数,可以返回多个项(item),如下返回索引值3-7的值
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i
*100))
print lb.get(3,7)
lb.pack()
root.mainloop()
#返回值为('300', '400', '500', '600', '700'),是一个tuple类型。

'''10.返回当前返回的项的索引,不是item的值'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i
*100))
lb.selection_set(
3,8)
print lb.curselection()
lb.pack()
root.mainloop()
#返回值为('3', '4', '5', '6', '7', '8'),而不是('300','400','500','600','700','800'),哑然无法直接得到各项的值,知道了索引,得到值
#
就很容易了:lb.get()就可以实现。

'''11.判断 一个项是否被选中,使用索引。'''
from Tkinter import *
root 
= Tk()
lb 
= Listbox(root)
for i in range(10):
    lb.insert(END,str(i
*100))
lb.selection_set(
3,8)
print lb.selection_includes(8)
print lb.selection_includes(0)

lb.pack()
root.mainloop()
#返回结果:True Flase,即8包含在选中的索引中,0不包含在选中的索引中

'''12.Listbox与变量绑定'''
# -*- coding: cp936 -*-
from Tkinter import *
root 
= Tk()
v 
= StringVar()
lb 
= Listbox(root,listvariable = v)
for i in range(10):
    lb.insert(END,str(i
*100))
#打印当前列表中的项值
print v.get()
#输出:('0', '100', '200', '300', '400', '500', '600', '700', '800', '900')
#
改变v的值,使用tuple可以与item对应
v.set(('1000','200'))
#结果只有两项了1000和200
lb.pack()
root.mainloop()

'''13.Listbox与事件绑定'''
#  它不支持command属性来设置回调函数了,使用bind来指定回调函数,打印当前选中的值
#
 -*- coding: cp936 -*-
from Tkinter import *
root 
= Tk()
def printList(event):
    
print lb.get(lb.curselection()) 
lb 
= Listbox(root)
lb.bind(
'<Double-Button-1>',printList)
for i in range(10):
    lb.insert(END,str(i
*100))
lb.pack()
root.mainloop()

#还有一个比较实用的功能没有介绍:滚动条的添加,留到后面介绍Scrollbar的时候再一并介绍

#author:     jcodeer
#
blog:    jcodeer.cublog.cn
#
email:    jcodeer@126.com
 
Tkinter Listbox 全解:从基础增删改查到高级联动与性能优化 在Python桌面应用开发中,选择类控件是构建交互界面的基础。Listbox作为Tkinter内置的一维列表组件,以索引化字符串模型实现数据展示与选择,配合事件驱动与控件绑定机制,可完成增删改查、多选扩展、滚动联动等操作。掌握selectmode、listvariable等核心配置,能高效实现表单联动、历史记录展示、批量数据管理等真实场景。围绕Listbox的构造、数据管理、事件绑定、滚动条组合、高级技巧与常见坑位,结合可运行的最小示例系统讲解,便于读者直接上手应用。 阅读详情

相关推荐

Tkinter实例学习

前段时间做一个东西刚好接触到python的Tkinter,上网看了一些基本教程,这里做一个总结,并参考网上的一个实例1.规划图2.源码# -*- coding:utf-8 -*- from tkinter import * from tkinter.filedialog import * class Application: num_info_hash = {} char_inf...

qq_38211852的博客 1862

tkinter-listbox详解

本文介绍Listbox控件。 Listbox控件的显示主体就是一个选项列表(items list),每个item一行。当创建一个Listbox控件对象时,该对象没有选项(item)。item可以支持两种方法创建。item可以被删除。一个或多个item可以被选中,然后做相应的事情。还是那个套路,先结合实例介绍一下常用的属性和方法,再给出一个综合性的例子。 文章目录Listboxbgbdfgcursorlistvariableselectmodeindex(index)insert(index, *elemen

渔道的博客 1万+

python中tkinter使用Listbox组件实现列表框

python中tkinter使用Listbox组件实现列表框

statistics+insight+vista+power 651

Tkinter 组件详解(八):Listbox

Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表。Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件的配置,用户可以从列表中选择一个或多个选项。 何时使用 Listbox 组件? Listbox 组件通常被用于显示一组文本选项,Listbox 组件跟Checkbutton和Radiobutton组件类似,不过...

来自江南的你的博客 6万+

Python Tkinter 之Scrollbar控件(Python GUI 系列13)

Python Tkinter 之Scrollbar控件(Python GUI 系列13) 1. 序言 本章介绍Tkinter的Scrollbar控件,本文是Python GUI系列的第13篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。 2. 环境信息 ********************...

Jin_Kwok的博客 8201

Python Tkinter 之Listbox控件(Python GUI 系列12)

Python Tkinter 之Listbox控件(Python GUI 系列12) 1. 序言 本章介绍Tkinter的Listbox控件,本文是Python GUI系列的第12篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。 2. 环境信息 ************************...

Jin_Kwok的博客 2万+

listbox tkinter 多选_TKINTER教程之LISTBOX篇

#Listbox为列表框控件,它可以包含一个或多个文本项(textitem),可以设置为单选或多选'''1.创建一个Listbox,向其中添加三个item'''fromTkinterimport*root=Tk()lb=Listbox(root)foritemin['python','tkinter','widget']:lb.insert(END,item)lb.pack()root.mainl...

weixin_39609650的博客 850

TT电机、310电机、370电机在智能小车与机器人中的性能对比与选型指南

本文深入对比了TT电机、310电机和370电机在智能小车与机器人项目中的核心性能差异。文章从尺寸、扭矩、转速、电压电流等关键参数入手,结合不同应用场景(如入门小车、竞技机器人、机械臂),提供了清晰的选型指南和驱动控制建议,帮助开发者根据项目需求选择最合适的电机方案。

weixin_29065015的博客 408

tkinter教程5:控件Listbox和Scrollbar

tkinter教程5:控件Listbox和Scrollbar 本文博客链接:http://blog.youkuaiyun.com/jdh99,作者:jdh,转载请注明. 环境: python版本:3.5 开发环境:pyCharm 源码: import tkinter as tk import threading def main(): threading.Thread(...

jdh99的专栏 774

给新人的储能系统入门图解:从电芯到EMS,一张图看懂BESS里那些‘黑话’

本文通过视觉化拆解储能系统,从电芯到EMS详细解析BESS中的关键组件和行业术语。涵盖电芯参数、模组组装、PCS功能、BMS与EMS分工,以及SOC、DOD等关键运维参数,帮助新人快速理解储能系统的核心技术和应用场景。

weixin_42522964的博客 592

【Macbook-Latex安装部署教程】【Win-Texlive镜像下载】【简单易上手】MacTex+Vscode/Texstudio

该教程记录自己在mac()上安装部署Latex环境的经验,整个教程操作简单,配置要求少,易上手。教程分成三部分:Mactex下载与安装,Vscode插件下载与配置文件修改,Texstudio安装。

sunriseOvO的博客 2567

Python3 GUI编程: 自带图形库 tkinter 学习教程

1、为什么学tkinter tkinter的优缺点 优点:python3 GUI编程需要图形库,常用的有tkinter,wxWidgets,Qt,GTK等等。但是Python自带的库仅仅只是支持Tk的Tkinter,使用Tkinter,不需要安装任何其他包,就可以直接使用。 缺点:tkinter是十分轻量级的,他没有可视化的控件页面和软件,也没办法开发复杂的桌面应用,只能写一写小巧轻量级的小程序。 综上:tkinter适合日常使用,学习成本低,使用场景广。 2、tkinter语法 1、用tk创建一个窗体

小哈里的博客 2671

电商客服效率翻倍!手把手教你用影刀RPA+AI搭建智能回复系统(附实战配置)

本文详细介绍了如何利用影刀RPA+AI技术搭建电商智能客服系统,实现24小时在线回复,大幅提升客服效率。通过零代码配置、Excel词库管理和AI语义理解,系统能处理80%常规咨询,响应速度稳定在3秒内,特别适合中小电商降低成本并提升服务质量。

weixin_42520661的博客 548

实战tkinter图形界面开发_Tkinter python(图形开发界面)

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。目录:1、简单实例2、Label控件3、Button控件4、Entry控件5、点击按钮输出输入框中的内容6、Text控件7、带滚动条的T...

weixin_39787057的博客 1042

保姆级教程:手把手带你复现APFNet论文的RGBT目标跟踪模型(附完整代码与数据集配置)

本文提供了一份详细的APFNet论文复现指南,涵盖从环境搭建到模型测试的全流程。通过解析多模态融合模块和渐进式训练流程,帮助读者高效完成RGBT目标跟踪模型的复现工作,特别针对训练和测试中的常见问题提供实用解决方案。

weixin_29056781的博客 341

chembl_webresource_client 包数据接口下载chembl数据库;ZINC数据库下载、simles获取

点击进去https://zinc.docking.org/subclasses/kinase/predictions/,然后下载sdf模式,这里可以转化simles格式,如果下载csv里面没有包含simles。参考:https://github.com/chembl/chembl_webresource_client/blob/master/demo_wrc.ipynb。参考:https://zinc.docking.org/这是网页搜索查看,16条数据。这个数据这下载特别慢。

weixin_42357472的博客 3046

14.千峰教育Tkinter----自制随堂笔记

kkk

zhangkaiboheike的博客 518

YOLOv11的元学习(MAML)few-shot适配-(5样本内快速适应新类别)

本文提出了一种基于元学习和YOLOv11的少样本目标检测方法。首先介绍了元学习的核心概念和MAML算法原理,分析了YOLOv11的架构改进及其在少样本检测中的适用性。针对少样本检测面临的过拟合、特征混淆和定位困难等挑战,提出了基于MAML的解决方案。在实现方面,详细阐述了环境配置、数据预处理和任务采样策略,构建了支持N-way K-shot任务的数据加载器。实验表明,该方法相比传统微调策略可显著提升小样本场景下的检测性能。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 599

Python tkinter编程之Listbox篇

1. #-*-coding:utf-8-*- ''' 第一个Listbox Listbox为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选 insert:向Listbox中插入item ''' from tkinter import * root = Tk() lb = Listbox(root) for item in ['python', 'tkinte...

qiukapi的博客 4658

【libnice】meson + vs2022,生成win32工程

libnice

突围 947

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TKinter Listbox

TKinter Listbox 觉得有用的话,欢迎一起讨论相互学习~Follow Me 感谢莫烦老师 详情 创建windows window = tk.Tk() window.title('my window') window.geometry('500x500') 创建显示label var1 = tk.StringVar() l = tk.Label(window, bg='yellow...

泛用演化计算、通用人工智能优化模型 722

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Tkinter极简实例——Listbox篇

Tkinter Listbox 列表框控件,可以包含一个或多个文本项,可以设置为单选或多选。 Listbox极简例子 from tkinter import * root = Tk() lb = Listbox(root) for item in ['python', 'tkinter', 'widget']: lb.insert(END, item) lb.pack() root.mainloop() Listbox的多选模式 from tkinter import * root =

whitedrogen的博客 2538

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: Tkinter教程之Radiobutton篇
下一篇: Tkinter教程之Scale篇
jcodeer
博客等级 码龄22年 272粉丝 43原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值