Python Tkinter Listbox列表框


列表框小部件用于向用户显示列表项。我们只能在列表框中放置文本项,并且所有文本项都包含相同的字体和颜色。

用户可以根据配置从列表中选择一个或多个项目。

下面给出了使用Listbox的语法。

w = Listbox(parent,options)

下面给出了可能的选项列表。

SN
选项
说明
1bg
小部件的背景颜色
2bd
它代表边界的大小,默认值为2像素
3cursor
鼠标指针看起来像点,箭头等光标类型
4font
列表框项的字体类型
5fg
文字的颜色
6height
它表示列表框中显示的行数,默认值为10
7highlightcolor
窗口小部件处于焦点时的列表框项目的颜色
8highlightthickness
高亮的亮度
9relief
边框的类型, 默认为SUNKEN
10selectbackground
用于显示所选文本的背景颜色
11selectmode
用于确定可从列表中选择的项目数,它可以设置为BROWSE,SINGLE,MULTIPLE,EXTENDED
12width
它表示小部件的宽度(以字符为单位)
13xscrollcommand
用于让用户水平滚动列表框
14yscrollcommand
用于让用户垂直滚动列表框

方法

有与Listbox关联的以下方法。

SN
方法
说明
1activate(index)
用于选择指定索引处的行
2curselection()
它返回一个元组,其中包含所选元素的行号,从0开始计数。如果未选择任何元素,则返回一个空元组
3delete(first,last = None)
用于删除给定范围内的行
4get(first,last = None)
用于获取给定范围内存在的列表项
5index(i)
用于将具有指定索引的行放在窗口小部件的顶部
6insert(index,* elements)
用于在指定索引之前插入具有指定数量元素的新行
7nearest(y)
它返回列表框小部件的y坐标的最近一行的索引
8see(index)
它用于调整列表框的位置,使索引指定的行可见
9size()
它返回Listbox小部件中存在的行数
10xview()
这用于使小部件可水平滚动
11xview_moveto(fraction)
它用于使列表框可以按列表框中存在的最长行的宽度的一小部分水平滚动
12xview_scroll(number,what)
它用于使列表框可以按指定的字符数水平滚动
13yview()
它允许列表框可以垂直滚动
14yview_moveto(fraction)
它用于使列表框可以按列表框中存在的最长行的宽度分数垂直滚动
15yview_scroll(number,what)
它用于使列表框可以按指定的字符数垂直滚动

例1

# !/usr/bin/python3  
from tkinter import *  
top = Tk()  
top.geometry("200x250")  
lbl = Label(top,text = "A list of favourite countries...")  
listbox = Listbox(top)  
listbox.insert(1,"India")  
listbox.insert(2, "USA")  
listbox.insert(3, "Japan")  
listbox.insert(4, "Austrelia")  
lbl.pack()  
listbox.pack()  
top.mainloop()

输出:

360截图1761061292104120.png

示例2:从列表中删除活动项目

# !/usr/bin/python3  
from tkinter import *  
top = Tk()  
top.geometry("200x250")  
lbl = Label(top,text = "A list of favourite countries...")  
listbox = Listbox(top)  
listbox.insert(1,"India")  
listbox.insert(2, "USA")  
listbox.insert(3, "Japan")  
listbox.insert(4, "Austrelia")  
#this button will delete the selected item from the list   
btn = Button(top, text = "delete", command = lambda listbox=listbox: listbox.delete(ANCHOR))  
lbl.pack()  
listbox.pack()  
btn.pack()  
top.mainloop()

输出:

python-tkinter-listbox2.png

按下删除按钮后。

python-tkinter-listbox3.png