python基础学习-tkinter模块(三)

1 Listbox组件

Listbox 列表框控件,在Listbox窗口小部件是用来显示一个字符串列表给用户,并且支持滚动条操作。所以更适用于提供大量选项。
Listbox 组件根据 selectmode 选项提供了四种不同的选择模式:SINGLE(单选)、BROWSE(也是单选,但是拖动鼠标或通过方向键可以直接改变选项)、MUTIPLE(多选)和 EXTENDED(也是多选,但需要同时按住 Shift 键或 Ctrl 键或拖拽鼠标实现)。默认是 BROWSE。

Listbox 组件默认最多只能显示 10 个项目,如果有 11 个项目怎么解决?
可以通过在 Listbox 内滑动鼠标滚轮使最后一个现身,但这样很容易被忽略。
有两个方法可以避免:
(1)修改 height 选项。height 选项是用来设置 Listbox 显示的行数(不是像素),其默认值是 10
但是如果要显示项目过多,比如说 1000 个,修改 height 就不太合适了,因为总不能显示 1000 行
(2)可以为 Listbox 组件添加滚动条。
下面看一个程序:

from tkinter import *

master = Tk()
theLB = Listbox(master,selectmode=EXTENDED,height=11)
theLB.pack()

for item in range(11):
    theLB.insert(END,item)
# ACTIVE表示当前选中的值
theButton = Button(master,text='删除它',\
                   command=lambda x=theLB:x.delete(ACTIVE))
theButton.pack()

mainloop()

输出:
在这里插入图片描述

Scrollbar 滚动条组件

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

  1. 设置该组件的 yscrollcommand 选项为 Scrollbar 组件的 set() 方法
  2. 设置 Scrollbar 组件的 command 选项为该组件的 yview() 方法
    添加滚动条的例子:
from tkinter import *

root = Tk()
sb = Scrollbar(root)
sb.pack(side=RIGHT,fill=Y)
#在Listbox里滑动鼠标滚轮时调用set方法,同时修改滚动条的位置
lb = Listbox(root,yscrollcommand=sb.set)

for i in range(1000):
    lb.insert(END,i)

lb.pack(side=LEFT,fill=BOTH)
#要与滚动条互通互连,要设置滚动条的command选项
#yview方法是Listbox里的默认方法,方法已经设置好怎么显示垂直滚动对应的内容变化
#拖动垂直滚动条时调用yview
sb.config(command=lb.yview)
mainloop()

输出:
在这里插入图片描述

Scale 组件

和滚动条组件很相似的一个组件 Scale 组件,Scale 组件主要通过滑块来表示某个范围内的一个数字。
可以通过设置选项 tickinterval 和 resolution 改变步长和精度:设置选项范围和分辨率(分辨率指的是步长,也就是精度)

from tkinter import *

root = Tk()

#tickinterval=5每5个步长显示刻度
#resolution设置每次移动多少个长度,等于5的话,每次改变只能改变5
s1 = Scale(root,from_=0,to=42,tickinterval=10,resolution=5,length=100)
s1.pack()
s2 = Scale(root,from_=0,to=200,tickinterval=50,orient=HORIZONTAL,length=200)
s2.pack()

def show():
    print(s1.get())
    print(s2.get())

Button(root,text="获取位置",command=show).pack()

mainloop()

输出:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42711815/article/details/88847673