2011-01-05 2 views
5

У меня есть виджет Tkinter Text, и я хотел бы знать, сколько строк оно содержит.Получение общего количества строк в текстовом виджете Tkinter?

Я знаю метод text.cget("height"), однако это только говорит мне, сколько строк отображается. Я хотел бы знать, сколько строк есть.

Я использую эту информацию, чтобы попытаться создать свою собственную полосу прокрутки, поэтому любая помощь будет высоко оценена.

+0

Если вам нужны общие линии дисплея, проверьте мой ответ здесь на помощь (и изменение начала и конца соответственно, и редактировать тот факт, что В конечном итоге я отвечал за оставшиеся строки вместо общего): http://stackoverflow.com/questions/29428515/whats-the-most-efficient-way-to-get-a-tkinter-text-widgets-total-display- строки – Shule

ответ

8

Используйте метод index, чтобы найти значение «конец», которое является позицией сразу после последнего символа в буфере.

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

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

Update на комментарий Bryan Oakley в:

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

Вы также можете использовать '' end-1c'', чтобы избежать вычитания 1 (хотя значение после «.» будет равно количеству символов на последнем строка, а не нуль) –

+0

Спасибо, что помогает тонну! Когда я закончил с моим текущим проектом, я, вероятно, выпущу некоторые из виджетов, которые я сделал как расширение для Tkinter. Если есть интерес. – rectangletangle

Смежные вопросы