我用tkinter Text编写一个简单的程序,用一个函数绑定向下箭头键,但按下向下键时CURRENT和INSERT游标不正确。
首先,CURRENT有时不会更新,有时会更新错误的索引
其次,INSERT总是更新,但是它的索引是最后一个位置,例如,如果当前索引是第1行第1列,那么我按下向下键,打印结果仍然是1.1(第1行第1列),但我的光标有已经到了第2行。
有人有这方面的经验吗?提前谢谢!
def tipKeyDown(event):
pos=text.index(CURRENT)
print(pos)
pos=text.index(INSERT)
print(pos)
text = Text(textFrm, relief=SOLID)
text.bind('<Button-1>', tipButton1)
text.bind('<Down>', tipKeyDown)
答案 0 :(得分:0)
您可以使用文字更改后引发的KeyRelease
。
text.bind('<KeyRelease-Down>', tipKeyDown)
BTW,CURRENT
对应于最接近鼠标指针的字符。 (与插入光标无关)
答案 1 :(得分:0)
这与tkinter处理事件的顺序有关。简而言之,小部件上的自定义绑定在默认绑定之前处理,它是导致插入或删除文本,更改索引等的默认绑定。
点击此处了解详情:Basic query regarding bindtags in tkinter和How to bind self events in Tkinter Text widget after it will binded by Text widget?以及Why Text cursor coordinates are not updated correctly?