1.创建
from tkinter import *
root=Tk()
lb=Listbox(root)
for item in ['python','tkinter','widget']:
lb.insert(END,item)
lb.pack()
root.mainloop()
图片.png
2.多选
lb=Listbox(root,selectmode=MULTIPLE)
from tkinter import *
root=Tk()
lb=Listbox(root,selectmode=EXTENDED)
for item in ['python','tkinter','widget']:
lb.insert(END,item)
lb.pack()
root.mainloop()
可以按住Shift或者Control
3.鼠标移动选中
lb=Listbox(root,selectmode=BROWSE)
默认就是这种情况
4.鼠标移动不选中
lb=Listbox(root,selectmode=SINGLE)
5.添加item
lb.insert(ACTIVE,'linux','windows','unix')
0向起始位置插入
END向结尾位置插入
ACTIVE当前元素位置为索引
6.删除item
lb.delete(1,1)
删除全部item
lb.delete(0,END)
7.选中和取消选中
lb.selection_set(0,10)
lb.selection_clear(1,3)
第一个参数是开始位置,第二个参数是结束位置
8.item个数
print(lb.size())
9.返回当前选中的item的索引
print(lb.curselection())
10.判断一个items是否被选中
lb.selection_set(3,2)
print(lb.selection_includes(1))
print(lb.selection_includes(3))
11.绑定变量
from tkinter import *
root=Tk()
v=StringVar()
lb=Listbox(root,listvariable=v)
for item in ['python','tkinter','widget']:
lb.insert(END,item)
lb.insert(ACTIVE,'linux','windows','unix')
print(v.get())
v.set(('1000','200'))
lb.pack()
root.mainloop()
图片.png
v.get()打印出所有item的值
v.set(()使用元组的形式改变了item的值和个数
12.事件绑定
from tkinter import *
root=Tk()
def printList(event):
print(lb.get(lb.curselection()))
lb=Listbox(root)
lb.bind('',printList)
for i in range(10):
lb.insert(END,str(i*100))
lb.pack()
root.mainloop()
图片.png
双击数字会打印文本
事件可以参考
https://www.cnblogs.com/wumac/p/5842393.html