这篇文章主要介绍了如何使用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 items
for i in range(0,20):
lb.insert(END, str(i))
# bind event
lb.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实现滚动条”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。