#python-3.x #tkinter
#python-3.x #tkinter
Вопрос:
Это всего лишь пример кода.
input = text_widget.get("1.0","end-1c")
Я понял, что «1.0» означает получение ввода с самого первого символа в текстовом виджете, а «end-1c» — получение извлечения до последней строки, исключая символ новой строки.
Но как я могу получить последнюю введенную строку в текстовом виджете?
Ответ №1:
В конце всегда гарантированно будет новая строка, поэтому последняя строка текста, исключая эту новую строку, заканчивается на "end-1c"
, как вы предлагаете. Текстовый виджет поддерживает добавление одного из небольшого набора модификаторов к индексу. Этими модификаторами являются «linestart», «lineend», «wordstart» и «wordend».
Таким образом, чтобы получить начало последней строки, мы можем добавить модификатор «linestart» к этому индексу.
Пример:
input = text_widget.get("end-1c linestart", "end-1c")
Комментарии:
1. Данный ответ работает. Но почему нам нужно использовать «end-1c linestart» вместо «end linestart»? Потому что нам нужно только добраться до начальной точки конечной строки. В чем причина «-1c»
2. @learner: потому что «end» представляет точку сразу после конечной новой строки. «linestart» фактически означает возврат назад, пока вы не найдете новую строку. Поскольку «end» находится после последней новой строки, резервное копирование до новой строки означает, что оно останавливается на этой конечной новой строке.