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

时间:2015-05-07 16:56:09

标签: python python-3.x tkinter cursor

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

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

1 个答案:

答案 0 :(得分:4)

如果您的绑定在文本小部件上,并且如果焦点在文本小部件上,则您的文本小部件将永远不会看到按键。焦点管理内置于Tkinter,因此您不必做任何事情。

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

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