Listbox组件
如果需要提供选项给用户选择,单选可以用Radiobutton组件,多选可以用Checkbutton,如果提供的选项非常多,可以考虑使用Listbox组件。Listbox是以列表的形式显示出来,并支持滚动条操作。
实例1:
1 from tkinter import * 2 3 root = Tk()#创建主窗口 4 5 theLB = Listbox(root,setgrid = True,selectmode=EXTENDED)#创建一个空列表 6 theLB.pack() 7 8 #往列表里添加数据 9 for item in ["鸡蛋","鸭蛋","鹅蛋","李狗蛋"]: 10 theLB.insert(END,item)#每次在列表最后插入一个数据 11 12 #创建一个按钮,ACTIVE表示当前选中的数据 13 theButton = Button(root,text="删除",command = lambda x = theLB:x.delete(ACTIVE)) 14 theButton.pack() 15 16 #theLB.delete(0,END)删除所有列表数据 17 18 mainloop()
注:listbox.delete(0,END)可以删除列表中所有项目
实例2:添加height选项
1 from tkinter import * 2 3 root = Tk()#创建主窗口 4 5 #height=11表示可以显示11个项目 6 theLB = Listbox(root,setgrid = True,\ 7 selectmode=BROWSE,height=11)#创建一个空列表,选择模式为单选 8 theLB.pack() 9 10 #往列表里添加数据 11 for item in range(11): 12 theLB.insert(END,item)#每次在列表最后插入一个数据 13 14 #创建一个按钮,ACTIVE表示当前选中的数据 15 theButton = Button(root,text="删除",command = lambda x = theLB:x.delete(ACTIVE)) 16 theButton.pack() 17 18 #theLB.delete(0,END)删除所有列表数据 19 20 mainloop()
Scrollbar组件
实例1:
1 from tkinter import * 2 3 root = Tk()#创建主窗口 4 5 sb = Scrollbar(root) 6 sb.pack(side=RIGHT,fill=Y) 7 8 lb = Listbox(root,yscrollcommand=sb.set)#创建一个空列表 9 for i in range(1000): 10 lb.insert(END,i) 11 lb.pack(side=LEFT,fill=BOTH) 12 13 sb.config(command = lb.yview) 14 15 mainloop()
事实上,这是一个互联互通的过程。当用户操作滚动条时,滚动条响应滚动并同时通过Listbox组件的yview()方法滚动列表框里的内容;同样,当列表框中可视范围发生改变的时候,Listbox组件通过调用Scrollbar组件的set()方法设置滚动条的最新位置。
Scale组件
Scale组件主要是通过滑块来表示某个范围内的一个数字,可以通过修改选项设置范围以及分辨率(精度)
实例1:
1 from tkinter import * 2 3 root = Tk()#创建主窗口 4 Scale(root,from_=0,to=42).pack()#创建铅锤方向滚动条 5 Scale(root,from_=0,to=200,orient=HORIZONTAL).pack()#创建水平方向滚动条 6 7 mainloop()
实例2:打印当前位置
1 from tkinter import * 2 3 def show(): 4 print(s1.get(),s2.get())#使用get()方法获取当前滑块的位置 5 6 root = Tk()#创建主窗口 7 s1 = Scale(root,from_=0,to=42)#创建铅锤方向滚动条 8 s1.pack() 9 s2 = Scale(root,from_=0,to=200,orient=HORIZONTAL)#创建水平方向滚动条 10 s2.pack() 11 12 #创建一个按钮 13 Button(root,text="获取位置",command=show).pack() 14 15 mainloop()
实例3:通过resolution选项控制分辨率(步长),通过tickinterval选项设置刻度
1 from tkinter import * 2 3 def show(): 4 print(s1.get(),s2.get())#使用get()方法获取当前滑块的位置 5 6 root = Tk()#创建主窗口 7 #tickinterval表示设置刻度,即每隔多少显示一个刻度 8 #length表示滚动条的长度所占的像素数 9 #resolution用来控制分辨率(步长) 10 s1 = Scale(root,from_=0,to=42,tickinterval=5,length=200,\ 11 resolution=5,orient=VERTICAL)#创建铅锤方向滚动条 12 s1.pack() 13 s2 = Scale(root,from_=0,to=200,tickinterval=10,\ 14 length=600,orient=HORIZONTAL)#创建水平方向滚动条 15 s2.pack() 16 17 #创建一个按钮 18 Button(root,text="获取位置",command=show).pack() 19 20 mainloop()标签:11,Python,068,GUI,滚动条,theLB,创建,root,pack From: https://www.cnblogs.com/ybqjymy/p/17650785.html