获取Tkinter Text小部件中的总行数?

rec*_*gle 5 python text tkinter lines

我有一个Tkinter Text小部件,我想知道它包含多少行.

我知道这个text.cget("height")方法,但只告诉我显示了多少行.我想知道总共有多少行.

我正在使用此信息尝试制作我自己的自定义滚动条,因此任何帮助将非常感激.

Ste*_*ski 9

使用该index方法查找'end'的值,该值是缓冲区中最后一个字符之后的位置.

>>> text_widget.index('end')  # returns line.column 
'3.0'

>>> int(text_widget.index('end').split('.')[0]) - 1  # returns line count
2 
Run Code Online (Sandbox Code Playgroud)

根据Bryan Oakley的评论更新:

>>> int(text_widget.index('end-1c').split('.')[0])  # returns line count
2 
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用''end-1c'来避免必须减去1(尽管"."之后的值将是最后一行而不是零的任何数字) (3认同)