背景:设计一个选择框,里面的选择有很多很多。
比如设计一个省份,城市的选择框
from tkinter import *
master = Tk()
theLB = Listbox(master)
theLB.pack()
for item in ["北京", "上海", "广州", "成都"]:
'''
END 是每次都插入在表的最后
'''
theLB.insert(END, item)
mainloop()
上面代码添加需求:删除所选择的城市
单选,一个一个删除
ACTIVE :就是选择当前选中的城市
theButton = Button(master,text="删除它",command=lambda x=theLB:x.delete(ACTIVE))
theButton.pack()
from tkinter import *
master = Tk()
theLB = Listbox(master)
theLB.pack()
for item in ["北京", "上海", "广州", "成都"]:
'''
END 是每次都插入在表的最后
'''
theLB.insert(END, item)
theButton = Button(master,text="删除它",command=lambda x=theLB:x.delete(ACTIVE))
theButton.pack()
mainloop()
还可以多选,多个一起删除
theLB = Listbox(master,selectmode = EXTENDED)
滚动条
代码实现背景:
当成员多了,一个窗口里放不下,用户是看不到还有未显示的元素,于是,滚动条出现了
from tkinter import *
import numpy as np
master = Tk()
#创建出一个滚动条
sb = Scrollbar(master)
#右边显示,Y轴全填充
sb.pack(side = RIGHT,fill = Y)
theLB = Listbox(master,yscrollcommand=sb.set)
theLB.pack(side=LEFT,fill=BOTH)
for item in np.arange(0,20):
'''
END 是每次都插入在表的最后
'''
theLB.insert(END, item)
sb.config(command = theLB.yview)
mainloop()
Scale 滑块
使元素只能在某个范围里变化
以及获取滑块指向的值
from tkinter import *
import numpy as np
root = Tk()
s1 = Scale(root,from_=0,to= 42)
s1.pack()
s2 = Scale(root,from_=0,to= 200,orient=HORIZONTAL)
s2.pack()
def show():
print(s1.get(),s2.get())
Button(root,text="获取位置",command=show).pack()
mainloop()
更改刻度
resolution : 精度 ,每一步走多少,设置的越小,精度越高