Получить позицию в текстовом виджете tkinter - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь найти надежный способ получения текущей позиции курсора в текстовом виджете tkinter.

На данный момент у меня есть:

import tkinter as tk

def check_pos(event):
    print(t.index(tk.INSERT))

root = tk.Tk()

t = tk.Text(root)
t.pack()

t.bind("<Key>", check_pos)
t.bind("<Button-1>", check_pos)

root.mainloop()

Однако, это печатает предыдущую позицию курсора, а не текущую.У кого-нибудь есть идеи, что происходит?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Спасибо Брайану Окли за то, что он указал мне правильное направление со ссылками, которые он разместил в комментариях.Я выбрал третий вариант, который вводит дополнительную привязку.Рабочий код ниже.Теперь привязка происходит после привязки класса, так что изменение позиции в виджете «Текст» становится видимым для функции.

import tkinter as tk

def check_pos(event):
    print(t.index(tk.INSERT))

root = tk.Tk()

t = tk.Text(root)
t.pack()
t.bindtags(('Text','post-class-bindings', '.', 'all'))

t.bind_class("post-class-bindings", "<KeyPress>", check_pos)
t.bind_class("post-class-bindings", "<Button-1>", check_pos)


root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...