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

时间:2013-09-09 05:28:30

标签: python tkinter

我正在制作一个基本的IDE,行号将与IDLE类似,但我不想将每个可能的键绑定到一个事件,该事件会更改当前行/列中的框。是否存在某种“on change”或“one cursor move”事件构建到Tkinter,或更具体地说,ScrolledText。如果没有,那么是否有人可以指出我的方向非常棒。

谢谢!

1 个答案:

答案 0 :(得分:5)

没有内置的本身,但如果你愿意有创意,那么你想要做什么

目前它的核心文本构件是Tcl命令,每当有事到文本组件这个命令被称为:文本插入,删除,光标变化等TCL的本质是,我们可以更换该命令用我们自己的命令。由于我们可以做到这一点,我们可以检测到某些变化,并在之前或之后调用我们自己的函数。

听起来很复杂,而且确实很复杂。从积极的方面来说,一旦你有了它,它就是万无一失的,这意味着你不需要做任何自定义绑定。要查看完整的工作示例,请参阅问题this answerbinding to cursor movement doesnt change INSERT mark

在滚动文本组件只是围绕一个普通的文本控件的简单封装,所以这个答案将与调整(你需要参考由scrolledtext小部件中使用的文本组件)的只是一点点工作。然而,包装器太薄了,我建议不要使用它,因为将滚动条添加到文本小部件是微不足道的。