【Python】Listbox组件 Scrollbar组件 Scale组件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN___CSDN/article/details/81296481

Listbox组件

在选项特别多的时候,Listbox是以列表的形式显示出来,并支持滚动条操作,所以在对于需要提供大量选项的情况下会更适用。

from tkinter import  *
root = Tk()
theLB = Listbox(root,setgrid=True)
theLB.pack()
for item in ["1","2","3","4"]:
    theLB.insert(END,item)
theButton=Button(root,text="删除",command=lambda x=theLB:x.delete(ACTIVE))
theButton.pack()
mainloop()

AVTIVE是一个特殊的索引号,表示当前被选中的项目。

Listbox组件根据selectmode选项提供了四种不同的选择模式:

1、SINGLE单选

2、BROWSE单选,但拖动鼠标或通过方向键可以直接改动选项

3、MAULTIPLE多选

4、EXTENDED多选,需要同时按住Shift或者Control键或拖动光标实现

但选项增多就需要一个滚动条来帮助

Scrollbar组件

为了在某个组件上安装垂直滚动条,需要做两件事:

(1)设置该组件的yscrollbarcommand选项为Scrollbar组件的set()方法

(2)设置Scrollbar组件的command选项为该组件的yview()方法

from tkinter import *
root = Tk()
sb = Scrollbar(root)
sb.pack(side=RIGHT,fill=Y)
lb = Listbox(root,yscrollcommand=sb.set)
for i in range(1000):
    lb.insert(END,str(i))
lb.pack(side=LEFT,fill=BOTH)
sb.config(command=lb.yview)
mainloop()

  (上图程序)(下图程序)(下图程序)

Scale组件

该组件主要是通过滑块来表示某个范围内的数字,可以通过修改选项设置范围以及分辨率(精度)

使用get()方法获取当前滑块的位置

from tkinter import *

root = Tk()
s1=Scale(root, from_=0, to=42)
s1.pack()
s2=Scale(root,from_=0,to=200,orient=HORIZONTAL)
s2.pack()
#orient = HORIZONTAL 表示横向
def show():
    print(s1.get(),s2.get())
Button(root,text="获取数据",command=show).pack()
mainloop()

可以通过resolution选项控制分辨率(步长/精度),通过tickinterval选项设置刻度

from tkinter import *

root = Tk()
Scale(root,from_=0,to=40,tickinterval=5,length=200,resolution=5,orient=VERTICAL).pack()
Scale(root,from_=0,to=200,tickinterval=10,length=600,resolution=5,orient=HORIZONTAL).pack()
mainloop()

 

阅读更多
换一批

没有更多推荐了,返回首页