tkinter--listbox/scrollbar/scale用法

Listbox 列表框

Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色。根据组件的配置,用户可以从列表中选择一个或多个选项。

 listbox.insert(索引号,字符串) 方法添加文本。eg, inset(0, 'a') or insert(END, 'b') 上一行结束位置插入

listbox.delete(索引号) eg delete(ACTIVE) 删除选中项(多个选中时选择最后一个)

selectmode

1. 决定选择的模式

2. 四种不同的选择模式:SINGLE(单选)、BROWSE(也是单选,但拖动鼠标或通过方向键可以直接改变选项)、MULTIPLE(多选)和 EXTENDED(也是多选,但需要同时按住 Shift 键或 Ctrl 键或拖拽鼠标实现)

3. 默认是 BROWSE

xscrollcommand

1. 为 Listbox 组件添加一条水平滚动条

2. 将此选项与 Scrollbar 组件相关联即可

yscrollcommand

1. 为 Listbox 组件添加一条垂直滚动条

2. 将此选项与 Scrollbar 组件相关联即可

方法:

yview(*args)

-- 该方法用于在垂直方向上滚动 Listbox 组件的内容,一般通过绑定 Scollbar 组件的 command 选项来实现(具体操作参考:Scrollbar

-- 如果第一个参数是 MOVETO,则第二个参数表示滚动到指定的位置:0.0 表示最顶端,1.0 表示最底端

-- 如果第一个参数是 SCROLL,则第二个参数表示滚动的数量,第三个参数表示滚动的单位(可以是 UNITS 或 PAGES),例如:yview(SCROLL, 3, PAGES) 表示向下滚动三页

通常和scrollbar联动,显示更多项目

Scrollbar 滚动条

Scrollbar 组件通常几乎与 Text 组件、Canvas 组件和 Listbox 组件一起使用,水平滚动条还能跟 Entry 组件配合。

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

1.设置该组件的yscrollcommand==Scrollbar的组件的set方法

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

分析:当 Listbox 组件的可视范围发生改变的时候,Listbox 组件通过调用 set() 方法通知 Scrollbar 组件。而当用户操纵滚动条的时候,将自动调用 Listbox 组件的 yview() 方法。

添加水平滚动条方法跟上边一样,只是将 yscrollcommand 改为 xscrollcommand,yview 改为 xview 即可。

eg:

from tkinter import *

root = Tk()

f1 = Frame(root)
f1.pack(side=TOP)
f2 = Frame(root)
f2.pack(side=BOTTOM)

s = Scrollbar(f1)
s.pack(side=RIGHT, fill=Y)

lb = Listbox(f1, selectmode=EXTENDED, yscrollcommand=s.set)
lb.pack(side=LEFT, fill=BOTH)

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

Button(f2, text='DELETE', command=lambda x=lb:x.delete(ACTIVE)).pack(side=BOTTOM)
s.config(command=lb.yview)

mainloop()

Scale组件

Scale(master=None, **options) (class)

frome_  和 to  滚动范围

tickinterval     刻度

resolution      步长(一次调节的量)

length            滚动条的长度

get()    -- 获得当前滑块的位置

 

from tkinter import *

root = Tk()

s1 = Scale(root, from_=0, to=50, \
           tickinterval=5, resolution=3, length=150)
s1.pack()
s2 = Scale(root, from_=0, to=100, orient=HORIZONTAL, \
           tickinterval=10, resolution=20, length=150)
s2.pack()

def location():
    print('VERTICAL: %s \nHORIZONTAL: %s' %(s1.get(), s2.get()))
Button(root, text='Location', command=location).pack()

mainloop()

NOTE: 来自小甲鱼视频的学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值