2011-01-05 90 views
5

我有一个Tkinter Text小部件,我想知道它包含多少行。获取Tkinter Text小部件的总行数?

我知道text.cget("height")方法,然而,只有告诉我,很多线路都显示方式。我想知道总共有多少条线。

我正在使用此信息来尝试制作我自己的自定义滚动条,所以任何帮助都将不胜感激。

+0

如果您需要整个显示线,在这里看看我的回答求救(和变化开始,因此结束,和编辑的事实,我最终回答剩余的行而不是总数):http://stackoverflow.com/questions/29428515/whats-the-most-efficient-way-to-get-a-tkinter-text-widgets-total-display-行 – Shule 2015-04-03 09:07:02

回答

8

使用index方法来查找“端”,这是刚刚在缓冲区中的最后一个字符后的位置的值。

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

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

更新每布莱恩·奥克利的评论:

>>> int(text_widget.index('end-1c').split('.')[0]) # returns line count 
2 
+3

你也可以使用''end-1c''来避免必须减去1(尽管“。”后面的值将是最后一个字符的数量线而不是零) – 2011-01-05 22:10:49

+0

谢谢,这有助于吨!当我完成当前的项目时,我可能会发布一些我作为Tkinter的扩展的小部件。如果有兴趣。 – rectangletangle 2011-01-05 22:22:49