【问题标题】:Dynamically indenting and highlighting words in tkinter textbox在 tkinter 文本框中动态缩进和突出显示单词
【发布时间】:2014-09-05 00:31:06
【问题描述】:

我最近制作了一个简单的类似记事本的文本编辑器,但现在我想实现一些功能,例如突出显示某些单词的语法以及在您键入时自动缩进。当用户键入时,我怎么能动态地做到这一点。到目前为止,我所做的一切都是基于事件的,所以我猜我需要有某种循环来在用户输入时不断检查文本框的内容? tkinter 不适合这个吗?如果您引导我朝着正确的方向了解如何实现这一点,我们将不胜感激。

【问题讨论】:

  • 您可以查看IDLE 的源代码。它完全用 Tkinter 编写,默认情况下会这样做。
  • @iCodez 我不知道 IDLE 是用 tkinter 编写的,谢谢!

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-04-06
    • 2011-11-15
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多