我有一个带有一些文字的文本小部件。在字符424到478的文本中,我想使用tag_add()更改其颜色。
问题是tag_add()需要以“6.15”格式定位,这意味着第六行第十五个字符。但是我不知道第424个字符前面有多少个新行,也不知道计算精确列的余数是多少。有没有一种方法可以从绝对字节偏移量转换为行/列索引?
答案 0 :(得分:2)
文本小部件支持带索引的有限表达式语法。除此之外,您还可以在索引中添加和减去字符。例如,您可以使用"1.0 + 100 chars"
(或"1.0+100c"
)来表示“第一行,字符零,加上100个字符”。
官方python文档记录了这一点,选择在这里向您推荐官方tcl / tk文档:http://tcl.tk/man/tcl8.5/TkCmd/text.htm#M16
这也记录在这里的effbot网站上:http://effbot.org/tkinterbook/text.htm(参见“表达式”部分)
答案 1 :(得分:0)
如果您使用insert()
添加文本,则可以指定在插入期间使用的标记:
textw.tag_configure('red', background='red')
textw.insert(END, 'Some sample text ', (), 'with a bit of red', 'red', ' in the middle.')
结果:
此外,根据文本的配置方式,您可以使用:
textw.tag_add('red', 1.424, 1.478)