我试图找到一种可靠的方法来获取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()
但是,这会打印上一个光标位置而不是当前光标位置。任何人都有任何想法发生了什么?
提前致谢。
答案 0 :(得分:1)
感谢Bryan Oakley指出我正确的方向,并在评论中发布了链接。我选择了引入额外绑定的第三个选择。工作代码如下。现在绑定发生在绑定类之后,以便函数可以看到Text小部件中的位置更改。
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()