Python Tkinter Listbox
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相关的方法如下所示。
SN | Method | Description |
---|---|---|
1 | activate(index) | 用于选择指定索引处的行。 |
2 | curselection() | 返回一个元组,其中包含所选元素的行号,从0开始计数。如果未选择任何内容,则返回一个空元组。 |
3 | delete(first, last = None) | 用于删除给定范围内存在的行。 |
4 | get(first, last = None) | 用于获取给定范围内存在的列表项。 |
5 | index(i) | 用于将具有指定索引的行置于小部件的顶部。 | yview() | This is used to make the widget vertically scrollable. |
6 | insert(index, *elements) |
用于在指定索引之前插入具有指定数量元素的新行。 |
7 | nearest(y) | 返回距离 Listbox 小部件的 y 坐标最近的行的索引。 |
8 | see(index) | 用于调整列表框的位置,使由索引指定的行可见。 |
9 | size() | 返回 Listbox 小部件中存在的行数。 |
10 | xview() | 用于使小部件在水平方向可滚动。 |
11 | xview_moveto(fraction) | 用于通过列表框中存在的最长行的宽度分数使列表框在水平方向可滚动。 |
12 | xview_scroll(number, what) | 通过指定的字符数使列表框在水平方向可滚动。 |
13 | yview() | 允许 Listbox 在垂直方向上可滚动。 |
14 | yview_moveto(fraction) | 用于通过列表框中存在的最长行的宽度分数使列表框在垂直方向可滚动。 |
15 | yview_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()
输出:
示例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()
输出:
在按下删除按钮之后。