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