Установите позицию курсора в текстовом виджете

Действительно ли возможно установить позицию курсора в текстовом виджете Tkinter? Я ничто еще не нахожу ужасно полезным.

Лучшее, которое я смог сделать, испускают a <Button-1> и <ButtonRelease-1> событие в определенной координате x-y, но это - пиксельная сумма, не сумма буквы.

8
задан nbro 11 February 2015 в 01:48
поделиться

2 ответа

Если "text", "line" и "column" - это ваш текстовый объект, то переменные желаемой строки текста и желаемой колонки будут, соответственно:

text.mark_set("insert", "%d.%d" % (line + 1, column + 1))

Если вы не хотите заботиться о номере строки... что ж, вам придется.

Полная документация на: http://effbot.org/tkinterbook/text.htm

9
ответ дан 5 December 2019 в 09:23
поделиться

Для установки позиции курсора можно использовать метод text_widget.mark_set с "insert" (или Tkinter. INSERT для "константы") первым аргументом и, для второго аргумента, одной из многих форм, наиболее полезными являются:

  • "%d,%d" % (строка, колонка), где строка основана на 1, а колонка на 0
  • "1. 0+%d chars" % index, где index основан на 0, как индекс строки/юникода в Python

Чтобы получить индекс метки, можно использовать метод text_widget.index:

text_widget.index(Tkinter.INSERT)
8
ответ дан 5 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: