获取tkinter文本小部件中的位置

时间:2018-05-30 00:32:46

标签: python tkinter

我试图找到一种可靠的方法来获取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 :(得分: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()