【问题标题】:Change color of certain words in Tkinter Text widget based on position in list根据列表中的位置更改 Tkinter Text 小部件中某些单词的颜色
【发布时间】:2015-06-12 07:19:14
【问题描述】:

我有一个 tkinter 文本框,我想根据它们在列表中的位置更改特定单词的颜色。基本上我有列表foo = [1,4,5,8,9],我想更改与列表中的数字相对应的单词的颜色。所以位置 1、4、5、8 和 9 的单词应该改变颜色。我看过不同的答案,但它们是根据关键字操作的,而不是给定单词的位置。

【问题讨论】:

  • 已经尝试过一些代码?
  • 看了一些,但正如我所说,他们工作的是关键字而不是位置

标签: python python-3.x text colors tkinter


【解决方案1】:

突出显示文本的方法是创建一个标签,使用您想要的任何属性(前景、背景、字体等)配置标签,然后将该标签应用于文本区域。剩下的只是简单的数学运算来计算要突出显示的字符范围。

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")

【讨论】:

  • 好的,3.0 和 4 有什么关系?位置和线路?
  • @Pittsy24:tkinter 索引是"line.column" 形式的字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2016-06-30
  • 2011-02-28
  • 2019-03-26
  • 2018-09-22
  • 1970-01-01
相关资源
最近更新 更多