Tkinter文本小部件中的可见行

时间:2011-01-05 22:59:23

标签: python tkinter

有没有办法让Tkinter文本小部件中当前可见哪些行?我正在尝试制作一个滚动条。

目前我正在尝试使用其他滚动方法(即箭头键和滚轮)协调我的滚动条。因此,当我使用箭头键或鼠标滚动时,我的栏也会滚动。

3 个答案:

答案 0 :(得分:3)

您可以使用@x,y的索引(例如:@0,0作为左上角最明显的字符)获取像素位置处的字符(以及行号)。由于您知道窗口小部件的宽度和高度(使用winfo_widthwinfo height方法),因此您也可以计算窗口小部件底部的行。

您还可以使用yview方法获取视图中文本的相对部分(例如:值为.5表示您已经完成文档的一半)

答案 1 :(得分:1)

为什么要制作自己的滚动条?只需使用已存在的那个: 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

答案 2 :(得分:1)

请参阅http://effbot.org/zone/tkinter-scrollbar-patterns.htm

这包含有关Scrollbar类如何工作的信息。

如果您想要实现自己的滚动条,您只需要向文本框发送消息,告诉您在该范围内的位置(0,1),它将返回一条消息,说明它的目标范围。