darchir 发表于 2021-7-16 09:19:30

大佬帮助解答tkinter中text标签的定位问题

from tkinter import *

root = Tk()

text = Text(root, width=30, height=5)
text.pack()

text.insert(INSERT, 'I love FishC.com!')

text.tag_add('tag1', '1.7', '1.12', '1.14')
text.tag_add('tag2', '1.7', '1.12', '1.14')]
text.tag_config('tag1', background='yellow', foreground='red')
text.tag_config('tag2', foreground='blue')

mainloop()

红色index是如何定位的,三个并列的index,为何定位结果是1.7-1.12和1.14,而不是三个单独的点,或者1.7和1.12-1.14?求教啦

Twilight6 发表于 2021-7-16 09:38:19


1.7-1.12 是 第一行的索引值为 7 的字符 到 第一行索引值为 11 的字符

这里的是索引规则和 Python 的一致,包含 左半边不包含右半边

而 1.14 是单独写的,因为没有和他组合成的范围所以就相当于是单独的一个位置 即等价于 1.14 ~ 1.15

代码也等价于tag_add('tag1', '1.7', '1.12', '1.14', '1.15')

若 1.14 后还有一个参数 那么就是和 1.14 构成的索引范围,如:

tag_add('tag1', '1.7', '1.12', '1.14', '1.18')

这里就 '1.14', '1.18' 表示 第一行索引值为 14 的字符到 第一行索引值为 17 的字符

后续也能继续填写更多范围,因为 tag_add 的第二个参数是 *args 收集参数

darchir 发表于 2021-7-16 09:54:26

好的,明白了。多谢!
页: [1]
查看完整版本: 大佬帮助解答tkinter中text标签的定位问题