Вставить значение в виджет текста, удалив предыдущее значение - Tkinter - PullRequest
0 голосов
/ 04 декабря 2018

Я использую кнопку backspace в Text Widget, и я хочу удалить последний символ всякий раз, когда пользователь нажимает кнопку backspace .Я использую этот код, но он не удаляет предыдущее значение.

input = entry.get("1.0", 'end-2c')
        entry.insert("1.0",input, END)

здесь я объявляю Text Widget

entry = Text(Keyboard_App, width=97, height=8)

1 Ответ

0 голосов
/ 04 декабря 2018

Если вы хотите удалить текст, вы должны явно вызвать метод delete.Один только вызов insert не перезапишет существующий текст - он вставляется, как следует из названия.delete принимает один или два индекса.Если указан только один индекс, он удаляет символ сразу после индекса.Если два, он удаляет все символы между двумя индексами.

Если вы хотите удалить все содержимое виджета, вы можете использовать индексы "1.0" и "end":

entry.delete("1.0", "end")

Чтобы удалить только последний символ, который вы можете использовать только"end-2c", что означает конечный индекс минус два символа (минус один относится непосредственно к завершающему символу новой строки, поэтому минус два означает символ перед завершающим символом новой строки).

entry.delete("end-2c")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...