rectangletangle
rectangletangle

Reputation: 52911

Getting the total number of lines in a Tkinter Text widget?

I have a Tkinter Text widget, and I'd like to know how many lines it contains.

I know of the text.cget("height") method, however that only tells me how many lines are displayed. I'd like to know how many lines there are total.

I'm using this info to try to make my own custom scrollbar, so any help would be much appreciated.

Upvotes: 12

Views: 13838

Answers (1)

Steven Rumbalski
Steven Rumbalski

Reputation: 45542

Use the index method to find the value of 'end' which is the position just after the last character in the buffer.

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

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

Update per Bryan Oakley's comment:

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

Upvotes: 17

Related Questions