【问题标题】:Visible lines in Tkinter text widgetTkinter 文本小部件中的可见行
【发布时间】:2011-06-04 08:23:05
【问题描述】:

有什么方法可以获取 Tkinter 文本小部件中当前可见的行吗?我正在尝试制作滚动条。

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

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,这正是我所需要的。我主要出于审美原因制作自己的滚动条。看来您无法更改 Windows 中 Tkinter 滚动条的外观。
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多