【发布时间】:2011-06-04 08:23:05
【问题描述】:
有什么方法可以获取 Tkinter 文本小部件中当前可见的行吗?我正在尝试制作滚动条。
目前我正在尝试将我的滚动条与其他滚动方法(即箭头键和滚轮)进行协调。这样当我使用箭头键或鼠标滚动时,我的栏也会滚动。
【问题讨论】:
有什么方法可以获取 Tkinter 文本小部件中当前可见的行吗?我正在尝试制作滚动条。
目前我正在尝试将我的滚动条与其他滚动方法(即箭头键和滚轮)进行协调。这样当我使用箭头键或鼠标滚动时,我的栏也会滚动。
【问题讨论】:
您可以使用@x,y 的索引(例如:@0,0 用于最左上角的可见字符)在像素位置获取字符(因此,行号)。由于您知道小部件的宽度和高度(使用 winfo_width 和 winfo height 方法),您也可以计算小部件底部的行数。
您还可以使用yview 方法来获取视图中文本的相对部分(例如:0.5 的值表示您已完成文档的一半)
【讨论】:
为什么要制作自己的滚动条?只需使用已经存在的那个: http://www.tkdocs.com/tutorial/morewidgets.html
基本上,您使用小部件的 yview/xview 方法来找出可见的内容,例如,请参阅 yview 的文档。 http://www.tcl.tk/man/tcl8.4/TkCmd/text.htm#M146
有关滚动条的更多详细信息,请参阅: http://wiki.tcl.tk/1455
【讨论】:
请看http://effbot.org/zone/tkinter-scrollbar-patterns.htm
这包含有关 Scrollbar 类如何工作的信息。
如果您想实现自己的滚动条,您只需向文本框发送消息,说明您在 (0,1) 范围内的位置,它会返回一条消息,告诉您它的目标范围是什么。
【讨论】: