我有一个tkinter文本框,我想根据列表中的位置更改特定单词的颜色。基本上我有列表foo = [1,4,5,8,9]
,我想改变与列表中的数字对应的单词的颜色。因此,位置1,4,5,8和9中的单词应该改变颜色。我已经看过不同的答案,但它们是根据关键词运作的 - 而不是给定单词的位置。
答案 0 :(得分:2)
突出显示文本的方法是创建标记,使用您想要的任何属性(前景,背景,字体等)配置标记,然后将该标记应用于文本的区域。剩下的就是计算要突出显示的字符范围的简单数学。
text = tk.Text(...)
text.tag_configure("highlight", background="yellow")
...
# add the tag "highlight" to the characters between index 3.0 and 4.0
text.tag_add("highlight", "3.0", "4.0")
为了帮助突出显示单词,您可以使用带有索引的修饰符"wordstart"
和/或"wordend"
来获取tcl认为是完整单词的开头和结尾。
# add the tag "highlight" to the word at position 4.5
text.tag_add("highlight", "4.5 wordstart", "4.5 wordend")