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控件

Python tkinter (5) 选项按钮与复选框

目录

Listbox

创建listbox

添加元素

添加到开始

添加到最后

删除元素

删除单个

删除多个

选中元素

取消选中元素

获取列表元素个数

获取值

返回选中

判断是否选中

绑定变量

打印当前列表选项

设置选项

绑定事件

连选

绑定滚动条

支持多选

总结


Listbox

列表框控件,可以包含一个或者多个文本框

作用:在listbox控件的小窗口显示一个字符串

创建listbox

创建listbox控件并添加几个元素

示例如下:

import tkinter

tk = 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 tkinter

tk = 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 tkinter

tk = 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 tkinter

tk = 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 tkinter

tk = 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控件介绍及使用示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354383.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浏览器——HTTP缓存机制与webpack打包优化

文章目录 概要强缓存定义开启 关闭强缓存协商缓存工作机制通过Last-Modified If-Modified-Since通过ETag If-None-Match 不使用缓存前端利用缓存机制&#xff0c;修改打包方案webpack 打包webpack 打包名称优化webpack 默认的hash 值webapck其他hash 类型配置webpack打包 web…

SpringBoot不同的@Mapping使用

文章目录 一、介绍二、使用 一、介绍 一般Mapping类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法&#xff0c;主要用于RESTful Web服务中。以下是每个注解的作用&#xff1a; GetMapping: 用于映射HTTP GET请求到处理器方法。通…

操作符讲解

目录 二进制和进制转换 原码、反码、补码 移位操作符 位操作符 一道面试题&#xff1a; 练习1&#xff1a; 思考题&#xff1a; 练习2&#xff1a; 逗号表达式 函数调用操作符() 结构成员访问操作符 结构体 操作符的属性&#xff1a;优先级、结合性 优先级&#x…

༺༽༾ཊ—Unity之-03-建造者模式—ཏ༿༼༻

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 更换天空盒&#xff08;个人喜好&#xff09; 任务&#xff1a;使用【UI】点击生成6种车零件组装不同类型车 【建造者模式】 首先资源商店下载车模型 将C…

IndexedDB入门

https://www.cnblogs.com/zhangzuwei/p/16574791.html 注意 1.删除表&#xff0c;创建表只能在数据库版本升级里面进行。 2.keypath: key 要和表字段对应&#xff0c;而且格式要一样&#xff0c;不然不运行不报错。 3.使用 autoIncrement: true 代替 keypath: key&#xff…

C++ 数论相关题目 扩展欧几里得算法(裴蜀定理)

给定 n 对正整数 ai,bi &#xff0c;对于每对数&#xff0c;求出一组 xi,yi &#xff0c;使其满足 aixibiyigcd(ai,bi) 。 输入格式 第一行包含整数 n 。 接下来 n 行&#xff0c;每行包含两个整数 ai,bi 。 输出格式 输出共 n 行&#xff0c;对于每组 ai,bi &#xff0c;求…

实验5:冒泡法排序

目录 1、实验目的&#xff1a; 2、实验内容&#xff1a; 3、实验要求&#xff1a; 4、程序流程图&#xff1a; 5、实验源程序&#xff1a; 6、实验要求分项截图及结果分析&#xff1a; 1、实验目的&#xff1a; 通过冒泡法排序程序设计&#xff0c;掌握将多重循环程序设…

技术书评和笔记【01】脑机接口-电路与系统 【2020版】

前言: 荷兰作者,Amir Zjajo博士,毕业于荷兰代尔夫特理工大学,方向 面向移动健康的低功耗混合型号电路与系统,以及,面向认知的神经形态电路。 ,脑机接口 - 电路与系统一书,系统介绍了,脑机接口电路与系统的实现技术,尤其,提到了量产和设计的问题,难能可贵,摘录如…

浪潮信息集中式存储仪电云云操作系统兼容性良好 通过澎湃技术认证

日前&#xff0c;浪潮信息集中式存储与仪电云i-stack云操作系统软件完成澎湃技术认证。在兼容性测试认证中&#xff0c;双方均表现出良好的兼容性能&#xff0c;同时系统运行可靠稳定&#xff0c;功能及性能表现俱佳。 浪潮信息澎湃技术认证是浪潮信息基于自身多元、创新的通用…

实际项目中的SpringAOP实现日志打印

目录 一、AOP实现日志 1.1 需求分析&#xff1a; 1.2 定义切面类和切点&#xff1a; 扩展&#xff1a;finally中的代码块一定会执行吗&#xff1f; 扩展 总结 1.3 定义环绕通知 1.4 handleBefore 的具体实现 1.4.1 获取url 1.4.2 获取接口描述信息 1.4.3 后续获取 1.5…

二叉树|116.填充每个节点的下一个右侧节点指针 117. 填充每个节点的下一个右侧节点指针 II

116.填充每个节点的下一个右侧节点指针 题目&#xff1a; 给定一个完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next …

CIFAR-10数据集详析:使用卷积神经网络训练图像分类模型

1.数据集介绍 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成&#xff0c;每类 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为5个训练批次和1个测试批次&#xff0c;每个批次有10000张图像。测试批次正好包含从每个类中随机选择的 1000 张图像…

如何在AirPods Pro中使用降噪功能?这里提供几个方法

本文介绍了如何在AirPods Pro上使用降噪功能&#xff0c;如何关闭它&#xff0c;以及该功能的工作原理。 注意&#xff1a;AirPods Pro和AirPods Max支持噪音消除。你的设备必须运行iOS 13.2或iPadOS 13.2或更高版本才能使用降噪功能。 如何在AirPods Pro上打开降噪功能 Air…

CSS color探索

CSS 颜色探索 在 CSS 的世界里&#xff0c;颜色为网页元素赋予了丰富的视觉效果。通过预定义的颜色名称、RGB、HEX、HSL&#xff0c;以及支持透明度的 RGBA 和 HSLA&#xff0c;我们可以创造出各种吸引人的设计。接下来&#xff0c;我们将通过示例代码来深入了解这些颜色应用。…

重构改善既有代码的设计-学习(六):处理继承关系

1、函数上移&#xff08;Pull Up Method&#xff09; 无论何时&#xff0c;只要系统内出现重复&#xff0c;你就会面临“修改其中一个却未能修改另一个”的风险。通常&#xff0c;找出重复也有一定的难度。 所以&#xff0c;某个函数在各个子类中的函数体都相同&#xff08;它们…

MYSQL中group by分组查询的用法详解(where和having的区别)!

文章目录 前言一、数据准备二、使用实例1.如何显示每个部门的平均工资和最高工资2.显示每个部门的每种岗位的平均工资和最低工资3.显示平均工资低于2000的部门和它的平均工资4.having 和 where 的区别5.SQL查询中各个关键字的执行先后顺序 前言 在前面的文章中&#xff0c;我们…

指针的深入了解2

1.const修饰指针 在这之前我们还学过static修饰变量&#xff0c;那我们用const来修饰一下变量会有什么样的效果呢&#xff1f; 我们来看看&#xff1a; 我们可以看到编译器报错告诉我们a变成了一个不可修改的值&#xff0c;我们在变量前加上了const进行限制&#xff0c;但是我…

深入理解与防范C语言中的栈溢出问题

一、引言 栈溢出是计算机安全领域中一个常见的漏洞&#xff0c;特别是在C语言编程中。由于C语言的灵活性和对内存管理的直接操作性&#xff0c;如果程序员在编写代码时不注意&#xff0c;就可能导致栈溢出的发生。本文将全面解析栈溢出的概念、原因、影响以及防范措施。 二、…

绘制太极图 - 使用 PyQt

大家好&#xff01;今天我们将一起来探讨一下如何使用PyQt&#xff0c;这是一个强大的Python库&#xff0c;来绘制一个传统的太极图。这个图案代表着古老的阴阳哲学&#xff0c;而我们的代码将以大白话的方式向你揭示它的奥秘。 PyQt&#xff1a;是什么鬼&#xff1f; 首先&a…

嵌入式——窗口看门狗(WWDG)补充

目录 一、独立看门狗与窗口看门狗 1.功能描述 2.两者区别 二、WWDG功能描述 1.窗口看门狗时钟 2.计数器时钟 3. 计数器 4.窗口值 三、WWDG超时时间 一、独立看门狗与窗口看门狗 1.功能描述 STM32有两个看门狗&#xff1a;一个是独立看门狗&#xff08;IWDG&#xff0…