Tkinter ListBox insert()方法
可以使用insert( )方法为列表框建立项目,这个方法的使用格式如下。
insert(index, elements)
上述index是项目插入位置,如果是插在最后面可以使用END。
示例1
建立列表框,同时为这个列表框建立Banana、Watermelon、Pineapple三个项目。
from tkinter import *
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x210") # 窗口宽300高210
lb = Listbox(root)
lb.insert(END,"Banana")
lb.insert(END,"Watermelon")
lb.insert(END,"Pineapple")
lb.pack(pady=10)
root.mainloop()
输出:
上述程序中第9~11行是建立列表项目,因为只有三个项目所以使用上述方式一次建立一个还不会太复杂,但是如果所要建立的项目很多时,建议使用list方式先存储项目,然后使用for…in循环方式将list内的列表项目插入到列表框。
示例2
建立含6个项目的列表框,程序第3、4行是建立fruits列表,第12、13行是分别将列表元素插入列表框内。
from tkinter import *
fruits = [
"Banana","Watermelon","Pineapple",
"Orange","Grapes","Mango"
]
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x210") # 窗口宽300高210
lb = Listbox(root)
for fruit in fruits:
lb.insert(END,fruit)
lb.pack(pady=10)
root.mainloop()
输出:
示例3
使用Listbox()构造方法时增加selectmode=MULTIPLE参数设置,这个设置可以让用户选取多个项目。
from tkinter import *
fruits = [
"Banana","Watermelon","Pineapple",
"Orange","Grapes","Mango"
]
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x210") # 窗口宽300高210
lb = Listbox(root,selectmode=MULTIPLE)
for fruit in fruits:
lb.insert(END,fruit)
lb.pack(pady=10)
root.mainloop()
输出:
示例4
使用selectmode=EXTENDED参数,此时可以用拖曳的方式选择区间项目。如果先单击一个项目,然后按住Shift键并单击另一个项目可以选取这个区间内的项目。
from tkinter import *
fruits = [
"Banana","Watermelon","Pineapple",
"Orange","Grapes","Mango"
]
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x210") # 窗口宽300高210
lb = Listbox(root,selectmode=EXTENDED)
for fruit in fruits:
lb.insert(END,fruit)
lb.pack(pady=10)
root.mainloop()
输出:
目前插入选项皆是插在最后面,所以语法是insert(END,elements),其实第一个参数是索引值,如果将END改为ACTIVE,表示是在目前选项前面加入一个项目,如果尚未选择选项则此ACTIVE是0。
示例5
先建立三个选项,然后使用insert(ACTIVE,elements … )在目前选项前方建立另外三个选项。
from tkinter import *
fruits = [
"Banana","Watermelon","Pineapple",
]
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x210") # 窗口宽300高210
lb = Listbox(root,selectmode=EXTENDED)
for fruit in fruits:
lb.insert(END,fruit)
lb.insert(ACTIVE,"Orange","Grapes","Mango")
lb.pack(pady=10)
root.mainloop()
输出:
读者请留意第13行一次插入了三个项目的方式。