Если вы хотите получить определенное количество символов, вы можете использовать модификатор индекса.Например, чтобы получить первые 30 символов строки 1, вы можете использовать что-то вроде self.windowIn.get('1.0', '1.0+30c')
Текстовый виджет также имеет концепцию «отображаемой строки».Строка дисплея представляет то, что вы видите, принимая во внимание перенос, сделанный виджетом.Если у вас есть строка шириной 60 символов, а текст обернут в 30 символов, вы можете использовать подмодификатор display
, чтобы получить все символы в отображаемой строке, а не в полной строке.
Например, рассмотрим виджет, который выглядит следующим образом, с одной строкой, которая переносится в 30 символов (т. Е. В строках нет новых строк):
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
Индекс 1.0 display lineend
совпадает с 1.29
, так как это индекс 30-го символа.
Когда вы присваиваете второй индекс методу get
, он возвращает все символы до этого индекса, но не , включая символ в этом индексе.Таким образом, при получении строки отображения вам нужно добавить один символ в индекс конца, чтобы захватить этот последний символ.
Итак, сложив все это вместе, вы можете получить весь текст в первой отображаемой строке с помощью этого:
self.windowIn.get("1.0", "1.0 display lineend +1c").
Каноническое описание индексов текстовых виджетов см. В официальной документации по tcl / tk здесь: http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M7