检测光标是否在文本小部件中

Detect whether or not cursor is in Text widget

我正在使用 tkinter 在 Python 3 中编写一个文本编辑器,我正在尝试添加一个撤消功能,但是为了记录用户的编辑,我需要在他们键入 a 时记录编辑信件。但是,如果他们点击了文本小部件,我不想记录输入的字母。我的问题是:

我可以检测Text widget 的光标是否在widget 中吗?文本小部件上是否有属性,或者我可以在 master window 上放置一个绑定来检测光标是否在文本小部件中?

如果您的绑定在文本小部件上,并且焦点 不在 文本小部件上,您的文本小部件将永远看不到按键。焦点管理内置于 Tkinter 中,因此您无需执行任何操作。

要回答您的具体问题,您可以使用方法 focus_get 来检索当前具有键盘焦点的小部件。您还可以绑定到 <FocusIn><FocusOut> 以在小部件获得或失去焦点时收到通知。

此外,您是否知道文本小部件具有内置的撤消功能?新墨西哥科技网站有一个很好的简要概述:http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/text-undo-stack.html