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()
- 輸出