2010-07-09 2 views
6

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

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

ответ

7

Если «текст», «линия», «столбец» ваш текстовый объект, необходимый текст строки и требуемые переменные колонки:

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

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

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

+0

идеальный! Я думал, что это может быть где-то вдоль этих линий, но я не мог понять это. Есть ли связанный метод для получения текущей позиции курсора? –

+3

@Wayne Werner: метод «index» возвращает индекс любой позиции, включая курсор вставки: 'text.index (" insert ")' –

6

Чтобы установить позицию курсора, вы можете использовать метод 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) 
Смежные вопросы