Tkinter的Listbox控件

news/2024/11/29 12:47:43/

Tkinter的Listbox控件是个选项框,主要是用来在给定的选项中选择一个

使用方法

创建选项框Listbox

和其他控件的创建方法一样,直接创建即可,命名为Lb

Lb=tk.Listbox(root)
Lb.pack()

在选项框中加入选项

可以边创建边添加,即利用listvariable确定要添加的元素,注意这里需要用到tk.StringVar()函数声明一下添加的为字符串

var=tk.StringVar()
var.set=((1,2,3,4))
Lb = tk.Listbox(root, listvariable=var)

也可以在创建了选项框以后再添加,使用Lb.insert()函数即可

Lb.insert(1,'hello')   #在第1个位置后面添加一个hello选项

返回当前Listbox选项的索引

在当前的选项框中选择一个选项,返回该选项的索引

Lb.curselection()

返回当前Listbox选项的内容 

在当前的选项框中选择一个选项,返回该选项的值

Lb.get(Lb.curselection())

因为Lb.get()函数需要一个位置参数,所以我们需要通过Lb.curselection()函数获取当前位置的索引 

配合Button按钮控件实现基本操作

使用Button按钮,每次选择一个选项后点击按钮,打印出当前选择的元素

import tkinter as tk
root=tk.Tk()
root.title('Listbox')
width=500
height=300
screenwidth=root.winfo_screenwidth()
screenheight=root.winfo_screenheight()
x=(screenwidth-width)//2
y=(screenheight-height)//2
root.geometry('%dx%d+%d+%d'%(width,height,x,y))
var=tk.StringVar()
L=tk.Label(root,textvariable=var,width=10,bg='white')
L.pack()
Lb=tk.Listbox(root)
Lb.place(x=180,y=50)
def get():
    if Lb.curselection():
        value=Lb.get(Lb.curselection())
        var.set(value)
    else:
        pass
Lb.insert(1,'hello')
Lb.insert(2,'new')
B=tk.Button(root,text='Print',width=10,height=1,command=get)
B.place(x=215,y=250)
root.mainloop()

运行结果 

09ce29921ab24548bff88446149f3e3b.png

 

 


http://www.ppmy.cn/news/19254.html

相关文章

一些数字分组的计算结果,也许对你的二码运算有用

把2N个数分成N份,每份2个号码,应该共有combin(2N,N)种, 但这有一个问题,生成的二码重复太多,对于观测二码很不方便。 能不能让生成的组数中二码只出现一次,也就是最小覆盖? 经过努力我把以下三种…

Python---文件操作

专栏:python 个人主页:HaiFan. 专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。 文件操作思维导图前言文件是什么文件路径文件操…

【C#】WPF实现经典纸牌游戏,适合新手入门

文章目录1 纸牌类2 布局3 初始化4 事件点击牌堆拖动牌的去留源代码1 纸牌类 之所以产生这个无聊至极的念头,是因为发现Unicode中竟然有这种字符。。。 黑桃🂡 🂢 🂣 🂤 🂥 🂦 🂧 &…

常见递归模式

常见递归模式递归模式遍历二叉树模式回溯模式子问题分解模式递归模式 常见递归模式: 遍历二叉树模式回溯模式子问题分解模式 遍历二叉树模式 只要涉及递归的问题,都是树的问题,或者说树的遍历。 void traverse(TreeNode root) { // 遍历…

【MySQL基础】MySQL多表操作详解

序号系列文章4【MySQL基础】MySQL表的七大约束5【MySQL基础】字符集与校对集详解6【MySQL基础】MySQL单表操作详解7【MySQL基础】运算符及相关函数详解文章目录前言1,多表关系1.1,一对一1.2,一对多1.3,多对多2,多表查询…

Keil C51工程转VSCode Keil Assistant开发全过程

Keil C51工程转VSCode Keil Assistant开发全过程✨这里以stc15W408AS为例。📌相关篇《【开源分享】自制STC15W408AS开发板》 📺编译-烧录演示: 📋转VSCODE开发环境主要原因可能代码提示以及代码跳转功能,或者其他。 &…

Python(for和while)循环嵌套及用法

Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者 …

Nginx与LUA(7)

您好,我是湘王,这是我的CSDN博客。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁!软件开发中&…