温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-01-13 21:13:57 来源:亿速云 阅读:415 作者:iii 栏目:大数据

这篇文章主要介绍了如何使用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('<<ListboxSelect>>',        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实现滚动条”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI