列表框窗口小部件用于向用户显示列表项。我们只能在列表框中放置文本项, 并且所有文本项都包含相同的字体和颜色。
用户可以根据配置从列表中选择一项或多项。
下面列出了使用列表框的语法。
w = Listbox(parent, options)
下面列出了可能的选项。
SN
Option
Description
1
bg
小部件的背景颜色。
2
bd
它代表边框的大小。默认值为2像素。
3
cursor
鼠标指针看起来像光标类型, 如点, 箭头等。
4
font
列表框项目的字体类型。
5
fg
文字的颜色。
6
height
它表示列表框中显示的行数。预设值为10。
7
highlightcolor
当小部件处于焦点位置时, 列表框项目的颜色。
8
highlightthickness
高光的厚度。
9
relief
边框的类型。默认值为SUNKEN。
10
selectbackground
用于显示所选文本的背景色。
11
selectmode
它用于确定可以从列表中选择的项目数。它可以设置为BROWSE, SINGLE, MULTIPLE, EXTENDED。
12
width
它以字符表示小部件的宽度。
13
xscrollcommand
它用于让用户水平滚动列表框。
14
yscrollcommand
它用于让用户垂直滚动列表框。
方法
有与列表框关联的以下方法。
SN
Method
Description
1
activate(index)
用于选择指定索引处的行。
2
curselection()
它返回一个元组, 该元组包含从0开始计数的所选元素的行号。如果未选择任何内容, 则返回一个空的元组。
3
delete(first, last = none)
用于删除给定范围内的行。
4
get(first, last = None)
它用于获取给定范围内存在的列表项。
5
index(i)
它用于将具有指定索引的行放置在窗口小部件的顶部。
6
插入(索引, *元素)
它用于在指定的索引之前插入具有指定数量的元素的新行。
7
nearest(y)
它将最近的行的索引返回到Listbox小部件的y坐标。
8
see(index)
它用于调整列表框的位置, 以使索引指定的行可见。
9
size()
它返回列表框窗口小部件中存在的行数。
10
xview()
这用于使窗口小部件水平滚动。
11
xview_moveto(fraction)
它用于使列表框在水平方向上滚动列表框中存在的最长行的宽度的分数。
12
xview_scroll(数字, 什么)
它用于使列表框按指定的字符数水平滚动。
13
yview()
它允许列表框垂直滚动。
14
yview_moveto(fraction)
它用于使列表框垂直滚动, 滚动长度为列表框中存在的最长行的宽度的一部分。
15
yview_scroll(数字, 什么)
它用于使列表框垂直滚动指定的字符数。
例子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()
输出
示例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()
输出
按下删除按钮后。