光标在Tkinter中移动时生成事件

aha*_*sen 2 python tkinter

我正在制作一个基本的IDE,行号将类似于IDLE,但我不想将每个可能的键绑定到一个事件,该事件用当前行/ col改变它.是否存在某种"on change"或"one cursor move"事件构建到Tkinter,或更具体地说,ScrolledText.如果没有,那么是否有人可以指出我正确的方向,这将是太棒了.

谢谢!

Bry*_*ley 5

本身没有任何内置功能,但如果您愿意发挥创意,那么您想要做的就是可能.

在它的核心,文本小部件是一个tcl命令,只要文本小部件发生某些事情就会调用此命令:文本被插入,删除,光标改变等等.tcl的本质是我们可以用我们自己的命令替换这个命令命令.由于我们可以做到这一点,我们可以检测到某些变化,并在之前或之后调用我们自己的函数.

听起来很复杂,而且确实很复杂.从积极的方面来说,一旦你有了它,它就是万无一失的,这意味着你不需要做任何自定义绑定.要查看完整的工作示例,请查看绑定到光标移动的问题的答案不会更改INSERT标记.

滚动文本小部件只是常规文本小部件的一个薄包装,所以这个答案只需要一点点调整(你需要引用scrolledtext小部件使用的文本小部件).然而,包装器太薄了,我建议不要使用它,因为将滚动条添加到文本小部件是微不足道的.