python(listbox)

Listbox:列表框

Scrollbar: 滚动条

Scrollbar(滚动条),可以单独使用,但最多的还是与其它控件(Listbox,Text,Canva)结合使用

滑动条的初始位置设置:set()方法

orient:设置滚动条水平(HORIZONTAL)还是竖直显示,默认是竖直

 

EG1:在Text组件中创建水平,竖直的滚动条

 

 

EG2:

# Listbox与Scrollbar绑定

from tkinter import *

root = Tk()

root.geometry('200x100')

scrollbar1 = Scrollbar(root)

scrollbar1.pack(side=RIGHT, fill=Y)

listbox1 = Listbox(root)

# 指定Listbox的yscrollbar的回调函数为Scrollbar的set

listbox1["yscrollcommand"] = scrollbar1.set

listbox1.pack(side=LEFT)

# 指定Scrollbar的command的回调函数是Listbar的yview

scrollbar1["command"] = listbox1.yview

for i in range(40):

    listbox1.insert(END, str(i))

root.mainloop()

补充1. yscrollcommand属性:如果你想让用户垂直滚动列表框,你可以链接你的listbox widg et到垂直滚动条。

   2. 将列表框垂直滚动,将相关的垂直滚动条的命令选项设置为该方法。

EG3:

yscrollcommad与scrollbar的set解除绑定。

from tkinter import *



root = Tk()

listbox1 = Listbox(root)

scrollbar1 = Scrollbar(root)

scrollbar1.pack(side=RIGHT, fill=Y)

# 解除Listbox的yscrollcommand与Scrollbar的set绑定

# lb['yscrollcommand'] = sl.set

for i in range(100):

    listbox1.insert(END, str(i))

# 使用索引为50的元素可见

listbox1.see(50)

listbox1.pack(side=LEFT)

scrollbar1['command'] = listbox1.yview

root.mainloop()

 

 

实行结果:运行结果,Listbox显示了50项,即Listbox的视图已经到50了,但Scrollbarslider仍旧位于0处。也就是说Scroolbar没有收到set的命令。即说明解除此绑定,Scrollbar将不再响应Listbox视图改变的消息。但仍可以使用Scrollbarslider来移动Listbox的视图。

 

EG4:

解除Scrollbar的command与Listbox的yview的关系

from tkinter import *

root = Tk()

listbox1 = Listbox(root)

scrollbar = Scrollbar(root)

scrollbar.pack(side = RIGHT,fill = Y)

#下面的这句是关键:指定Listbox的yscrollbar的回调函数为Scrollbar的set

listbox1['yscrollcommand'] = scrollbar.set

for i in range(100):

    listbox1.insert(END,str(i*100))

#使用索引为50的元素可见

listbox1.see(50)

listbox1.pack(side = LEFT)

#解除Scrollbar的command与Listbox的yview的关系

#sl['command'] = lb.yview

root.mainloop()

实行结果:

运行程序,Scrollbarslider已经到了50位置,也就是说Scrollbar响应了Listbox视图改变的消息,调用 了自己的set函数。
进行操作:拖动slder或点击up/down按钮,Listbox的视图没有任何反应,即Listbox不会响应Scrollbar的消息了。

PythonListboxTkinter库中的一个组件,用于显示一个可选的列表。可以通过插入项来填充Listbox,并且可以选择单个或多个项。 在引用\[1\]中的代码示例中,创建了一个Tkinter窗口,并在窗口中创建了两个Listbox组件。第一个Listbox是单选的,插入了三个课程选项。第二个Listbox是多选的,插入了五个编程语言选项。 在引用\[2\]和引用\[3\]的代码示例中,展示了如何使用Listbox的一些方法。nearest(y)方法返回最靠近坐标轴y的列表项索引,see(index)方法可以滚动到指定的列表项。 如果你有任何关于Python Listbox的具体问题,请告诉我,我会尽力帮助你。 #### 引用[.reference_title] - *1* [Python的GUI编程(五)Listbox(列表框)](https://blog.csdn.net/m0_37264397/article/details/79079259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python tkinter -- 第14章 列表框(Listbox)方法](https://blog.csdn.net/weixin_42272768/article/details/100796024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值