Python tkinter文本插入当前光标

2024-10-04 09:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我用tkinter文本编写了一个简单的程序,并将向下箭头键与一个函数绑定在一起,但当我按下down键时,CURRENT和INSERT光标不正确。
首先,当前有时不更新,有时更新错误的索引
其次,INSERT总是更新的,但是它的索引是最后一个位置,例如,如果当前索引是第1行第1列,那么我按Down键,打印结果仍然是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)

Tags: 函数textpos文本程序indexbindtkinter
2条回答

这与tkinter处理事件的顺序有关。简而言之,小部件上的自定义绑定是在默认绑定之前处理的,并且是默认绑定导致文本被插入或删除、索引更改等

查看更多信息:Basic query regarding bindtags in tkinterHow to bind self events in Tkinter Text widget after it will binded by Text widget?Why Text cursor coordinates are not updated correctly?

您可以使用在文本更改后引发的KeyRelease。在

text.bind('<KeyRelease-Down>', tipKeyDown)

顺便说一句,CURRENT对应于最接近鼠标指针的字符。(与插入光标无关)

相关问题 更多 >