Python Tkinter Listbox列表框
-
列表框小部件用于向用户显示列表项。我们只能在列表框中放置文本项,并且所有文本项都包含相同的字体和颜色,用户可以根据配置从列表中选择一个或多个项目
-
语法
listbix = Listbox(parent, options)
- 可能的选项列表
选项 | 描述 |
---|---|
bg | 小部件的背景颜色 |
bd | 它代表边界的大小,默认值为2像素 |
cursor | 鼠标指针看起来像点,箭头等光标类型 |
font | 列表框项的字体类型 |
fg | 文字的颜色 |
width | 它表示小部件的宽度(以字符为单位) |
height | 它表示列表框中显示的行数,默认值为10 |
highlightcolor | 窗口小部件处于焦点时的列表框项目的颜色 |
highlightthickness | 高亮的亮度 |
relief | 边框的类型, 默认为SUNKEN |
selectbackground | 用于显示所选文本的背景颜色 |
selectmode | 用于确定可从列表中选择的项目数,它可以设置为BROWSE,SINGLE,MULTIPLE,EXTENDED |
xscrollcommand | 用于让用户水平滚动列表框 |
yscrollcommand | 用于让用户垂直滚动列表框 |
- 方法
- 有与 Listbox 关联的以下方法
方法 | 描述 |
---|---|
activate(index) | 用于选择指定索引处的行 |
curselection() | 它返回一个元组,其中包含所选元素的行号,从0开始计数。如果未选择任何元素,则返回一个空元组 |
delete(first,last = None) | 用于删除给定范围内的行 |
get(first,last = None) | 用于获取给定范围内存在的列表项 |
index(i) | 用于将具有指定索引的行放在窗口小部件的顶部 |
insert(index,* elements) | 用于在指定索引之前插入具有指定数量元素的新行 |
nearest(y) | 它返回列表框小部件的y坐标的最近一行的索引 |
see(index) | 它用于调整列表框的位置,使索引指定的行可见 |
size() | 它返回Listbox小部件中存在的行数 |
xview() | 这用于使小部件可水平滚动 |
xview_moveto(fraction) | 它用于使列表框可以按列表框中存在的最长行的宽度的一小部分水平滚动 |
xview_scroll(number,what) | 它用于使列表框可以按指定的字符数水平滚动 |
yview() | 它允许列表框可以垂直滚动 |
yview_moveto(fraction) | 它用于使列表框可以按列表框中存在的最长行的宽度分数垂直滚动 |
yview_scroll(number,what) | 它用于使列表框可以按指定的字符数垂直滚动 |
- 示例一
from tkinter import *
root = Tk()
root.geometry("200x250")
lbl = Label(root,text = "A list of favourite countries...")
listbox = Listbox(root)
listbox.insert(1,"India")
listbox.insert(2, "USA")
listbox.insert(3, "Japan")
listbox.insert(4, "Austrelia")
lbl.pack()
listbox.pack()
root.mainloop()
- 输出
- 示例二:从列表中删除活动项目
from tkinter import *
root = Tk()
root.geometry("200x250")
lbl = Label(root,text = "A list of favourite countries...")
listbox = Listbox(root)
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(root, text = "delete", command = lambda listbox=listbox: listbox.delete(ANCHOR))
lbl.pack()
listbox.pack()
btn.pack()
root.mainloop()
- 输出