我正在编写自己的 Python 编辑器的应用程序。我正在使用文本小部件,并希望在输入单词时突出显示单词,就像 Python 编辑器一样。输入字符 # 后,我想开始用红色突出显示字符 # 后面的所有字符。
下面是用于此目的的部分代码。当字符 # 被识别为它被输入到文本小部件时,我从输入的字符到行尾添加了一个“CM”标签(我认为这对我来说可以完成这项工作)。
import tkinter as tk
def onModification(event=None):
c=event.char
if not c: return
pos=hT0.index(tk.INSERT)
if c=='#':
hT0.tag_add('CM',pos,f'{int(pos.split(".")[0])}.end')
return
hW=tk.Tk()
hT0=tk.Text(hW,wrap='none',font=('Times New Roman'12))
hT0.insert('end','')
hT0.place(x=27, y=0, height=515,width=460)
hT0.bind('<Key>', onModification)
hT0.tag_config('CM', foreground='#DD0000')
但是即使没有刚刚输入的字符#,输出也会仅突出显示已经存在的字符。对我想要的工作有什么想法?非常感谢你。