在tkinter文本框中动态缩进和突出显示单词

时间:2014-07-14 23:19:44

标签: python user-interface tkinter syntax-highlighting text-editor

我最近创建了一个简单的类似记事本的文本编辑器,但是现在我想要在键入时实现语法突出显示某些单词和自动缩进等内容。如何在用户输入时动态执行此操作。到目前为止,我所做的一切都是基于事件的,所以我猜我需要有一种循环,在用户输入时不断检查文本框的内容? tkinter不适合这个吗?如果你引导我朝着正确的方向指导我如何实现它,那就感激不尽了。

1 个答案:

答案 0 :(得分:1)

Tkinter非常适合这类事情。如果你愿意付出一些努力,可以制作一个非常智能的文本编辑器。

This answer显示了当文本小部件中的某些内容发生更改时,如何让文本小部件触发事件。它有点复杂,但相当万无一失。

如果你想要更简单的东西,你可以简单地绑定<Any-KeyRelease>,这将在用户释放密钥时触发事件。然后,您可以使用事件对象中的信息来决定要执行的操作。例如,它不会处理您使用鼠标剪切和粘贴的情况,并且您的绑定将触发箭头键和其他非插入键,这就是我推荐更复杂的解决方案的原因。

This answer显示了使用<space>上的绑定做一个简单的拼写检查的示例,还显示了一个带有“粗体”按钮的工具栏相当简单的实现。