Tkinter文本控件中的可见行数

1 投票
3 回答
2095 浏览
提问于 2025-04-16 09:28

有没有办法知道在Tkinter的文本框里,当前有哪些行是可见的?我正在尝试制作一个滚动条。

现在我想把我的滚动条和其他滚动方式(比如箭头键和鼠标滚轮)协调起来。这样当我用箭头键或鼠标滚动的时候,我的滚动条也能一起滚动。

3 个回答

1

为什么要自己做滚动条呢?直接用现成的就行了:

基本上,你可以使用一个小部件的yview/xview方法来查看哪些内容是可见的,具体可以参考yview的文档。

想了解更多关于滚动条的细节,可以查看这个链接:

1

请查看 http://effbot.org/zone/tkinter-scrollbar-patterns.htm

这里有关于滚动条类是如何工作的资料。

如果你想自己实现一个滚动条,只需要向文本框发送你在范围(0,1)中的位置消息,它会返回一个消息告诉你它正在针对哪个范围。

5

你可以通过一个像 @x,y 这样的索引来获取某个像素位置上的字符(也就是行号),比如说 @0,0 就是最左上角的可见字符。因为你知道这个小部件的宽度和高度(可以用 winfo_widthwinfo_height 方法来获取),所以你也可以计算出在小部件底部的行数。

另外,你还可以使用 yview 方法来获取当前可见文本的相对位置,比如说值为 .5 就意味着你已经浏览到文档的一半了。

撰写回答