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

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

使用 Listbox 的语法如下。

w = Listbox(parent, options)   

以下是可能的选项列表。

序号选项描述
1bg小部件的背景颜色。
2bd它表示边框的大小。默认值为2像素。
3cursor鼠标指针看起来像指定的光标类型,如点、箭头等。
4fontListbox 项的字体类型。
5fg文本的颜色。
6height它表示在 Listbox 中显示的行数。默认值为10。
7highlightcolor当小部件处于焦点状态时,Listbox 项的颜色。
8highlightthickness突出显示的厚度。
9relief边框的类型。默认为 SUNKEN。
10selectbackground用于显示所选文本的背景颜色。
11selectmode用于确定可以从列表中选择的项目数。可以设置为 BROWSE、SINGLE、MULTIPLE、EXTENDED。
12width以字符为单位表示小部件的宽度。
13xscrollcommand用于让用户水平滚动 Listbox。
14yscrollcommand用于让用户垂直滚动 Listbox。

方法

与 Listbox 相关的方法有:

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

示例 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()  

输出:

8-1.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()  

输出:

8-2.png

按下删除按钮后。

8-3.png

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程