我正在尝试向 tkinter 中的文本小部件添加语法突出显示我正在使用来自另一个堆栈溢出问题的代码Pygments syntax highlighter in python tkinter text widget 我将语法高亮功能绑定到根,但问题是所有其他默认值像 CTRL A 这样的绑定停止工作。如果我将它绑定到文本小部件但最后输入的字母没有突出显示,它们工作正常。这是代码(我是编程新手,所以可能会有很多愚蠢的错误)
from tkinter import *
from pygments import lex
from pygments.lexers import PythonLexer
def test(e):
txt.mark_set("range_start", "1.0")
data = txt.get("1.0", "end")
for tag in txt.tag_names():
txt.tag_remove(tag,"1.0","end")
for token, content in lex(data, PythonLexer()):
txt.mark_set("range_end", "range_start + %dc" % len(content))
txt.tag_add(str(token), "range_start", "range_end")
txt.mark_set("range_start", "range_end")
root=Tk()
txt=Text(root)
txt.pack(expand='yes')
txt.tag_configure("Token.Comment.Single", foreground='red')
root.bind('<Any-KeyPress>',test)
root.mainloop()