如何使用Tkinter中的Scrollbar实现滚动条

这篇文章主要介绍了如何使用Tkinter中的Scrollbar实现滚动条的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用Tkinter中的Scrollbar实现滚动条文章都会有所收获,下面我们一起来看看吧。

站在用户的角度思考问题,与客户深入沟通,找到北塔网站设计与北塔网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖北塔地区。

前一篇文章提供了封装之后的ScrollbarEx类,大大简化了Scrollbar控件的使用。但是这种做法并不是Tkinter想定的用法,Tkinter想定的方式是和其他控件绑定在一起使用

首先构建一个标题为'ScrollListBox'的标签框控件。这个控件实在是太简单了,因此只是在这里顺便提一下。

frame1 = LabelFrame(root, text='ScrollListBox')frame1.grid(row=0, column=0, columnspan=1, sticky=W+E)

构建一个列表框控件。

# create a listbox for demo.lb = Listbox(frame1,             activestyle='dotbox',             height=8, width=20)
# add itemsfor i in range(0,20):    lb.insert(END, str(i))
# bind eventlb.bind('<>',        lambda e: label.config(text=str(lb.curselection())))lb.grid(row=0, column=0)

接下来是重点。代码首先构建一个垂直滚动条,并将command指定为Listbox的yview方法。参考前一篇说明的内容可以想象,yview方法中应该是对各种滚动通知的处理;在前一篇的处理中,当位置计算完成之后需要调用Scrollbar的set方法,这个set方法是通过代码指定给Listbox的yscrollcommand属性。

scroll_ly = Scrollbar(frame1, orient=VERTICAL, command=lb.yview)scroll_ly.grid(row=0, column=1, sticky=N+S)lb['yscrollcommand']=scroll_ly.set

同样的方法构建右侧的标签框:

frame2 = LabelFrame(root, text='ScrollText')frame2.grid(row=0, column=1, columnspan=1, sticky=W+E+N+S)

构建文本控件。需要注意的是wrap属性被指定为NONE。

# create text widget.text = Text(frame2, height = 10, width=20, wrap=NONE)text.grid(row=0, column=0)

分别构建垂直和水平两个方向滚动条:

scroll_ty = Scrollbar(frame2, orient=VERTICAL, command=text.yview)scroll_ty.grid(row=0, column=1, sticky=N+S)text['yscrollcommand']=scroll_ty.set
scroll_tx = Scrollbar(frame2, orient=HORIZONTAL, command=text.xview)scroll_tx.grid(row=1, column=0, sticky=E+W)text['xscrollcommand']=scroll_tx.set

如果Text的wrap属性没有指定为NONE,则水平滚动条不会起作用。

关于“如何使用Tkinter中的Scrollbar实现滚动条”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何使用Tkinter中的Scrollbar实现滚动条”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


网页名称:如何使用Tkinter中的Scrollbar实现滚动条
网站路径:http://lszwz.com/article/pigeco.html

其他资讯

售后响应及时

7×24小时客服热线

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款