📜  Python Tkinter列表框(1)

📅  最后修改于: 2023-12-03 15:34:05.354000             🧑  作者: Mango

Python Tkinter列表框

在Python Tkinter中,列表框(Listbox)是用来显示一个列表的控件。列表框可以用来展示列表项,也可以与其它控件进行交互。

创建列表框

可以通过Listbox()函数来创建一个列表框。

from tkinter import *

root = Tk()

# 创建一个列表框,并添加几个列表项
listbox = Listbox(root)
listbox.pack()
listbox.insert(END, "Python")
listbox.insert(END, "Java")
listbox.insert(END, "C++")

root.mainloop()
列表框方法
添加列表项

使用insert()方法向列表框中添加列表项。insert()方法接受两个参数,第一个参数是列表项要插入的位置,可以设置为END表示列表末尾;第二个参数是要添加的列表项内容。

listbox.insert(END, "Python")
listbox.insert(END, "Java")
listbox.insert(END, "C++")
删除列表项

使用delete()方法从列表框中删除列表项。delete()方法接受两个参数,第一个参数是要删除的列表项的起始位置,第二个参数是要删除的列表项的结束位置。

listbox.delete(0, END)    # 删除所有列表项
获取选中的列表项

使用curselection()方法获取列表框中当前选中的列表项的索引。

index = listbox.curselection()[0]
获取列表项的个数

使用size()方法获取列表框中列表项的个数。

size = listbox.size()
清除所有列表项

使用delete()方法清除列表框中所有的列表项。

listbox.delete(0, END)
列表框与其它控件交互
将列表框与按钮关联

可以使用bind()方法将列表框与按钮进行关联。当按钮被单击时,可以使用curselection()方法获取列表框中选中的列表项,并使用get()方法获取选中列表项的内容。

from tkinter import *

root = Tk()

# 创建一个列表框,并添加几个列表项
listbox = Listbox(root)
listbox.pack()
listbox.insert(END, "Python")
listbox.insert(END, "Java")
listbox.insert(END, "C++")

# 创建一个按钮
btn = Button(root, text="获取选中项")
btn.pack()

# 将列表框与按钮关联
def get_selected_item():
    index = listbox.curselection()[0]
    item = listbox.get(index)
    print(item)

btn.configure(command=get_selected_item)

root.mainloop()
将列表框与滚动条关联

当列表框中的列表项过多时,可以将列表框与滚动条进行关联,以便滚动列表框查看所有的列表项。

from tkinter import *

root = Tk()

# 创建一个滚动条
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)

# 创建一个列表框,并添加几个列表项
listbox = Listbox(root, yscrollcommand=scrollbar.set)
listbox.pack(side=LEFT, fill=BOTH)
listbox.insert(END, "Python")
listbox.insert(END, "Java")
listbox.insert(END, "C++")

# 将滚动条与列表框关联
scrollbar.config(command=listbox.yview)

root.mainloop()
结论

Python Tkinter列表框是一个非常有用的控件,常用来展示一个列表,也可以与其它控件进行交互。列表框有多种方法可供使用,包括添加和删除列表项,获取选中的列表项等。同时,将列表框与其它控件进行关联也非常方便,如将列表框与按钮和滚动条关联,以便交互和滚动列表。