Установить позицию курсора в текстовом виджете - PullRequest
7 голосов
/ 09 июля 2010

Можно ли установить позицию курсора в виджете Tkinter Text?Я пока не нахожу ничего ужасно полезного.

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

Ответы [ 3 ]

9 голосов
/ 09 июля 2010

Если "текст", "строка" и "столбец" являются вашим текстовым объектом, требуемая текстовая строка и требуемые переменные столбца, соответственно:

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

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

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

7 голосов
/ 10 июля 2010

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

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

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

text_widget.index(Tkinter.INSERT)
0 голосов
/ 14 марта 2018

Это свойство только для Text Widget, потому что для Entry Widget мы можем использовать:

entry_widget_name.icursor("position")

Для Text Widget будет:

text_widget_name.mark_set("insert", "%d.%d" % (x,y))

, где x = позиция строки y =позиция столбца

(с использованием целых чисел с точками, например, 1,0 или 3,0)

...