如何根据单词起止索引获取Tkinter Text组件对应单词的所有标签
Tkinter Text组件获取指定索引范围单词绑定标签的实现方法
直接使用Text组件内置的tag_names()方法即可,不需要额外遍历判断标签覆盖范围,这是组件原生提供的对应能力。
具体实现代码
假设你的Text组件实例对象命名为text_widget,已知目标单词的起始索引为1.4、结束索引为1.9,直接传入两个索引参数调用方法即可:
# 获取1.4到1.9索引区间内绑定的所有标签 word_tags = text_widget.tag_names("1.4", "1.9")
注意事项
- 该方法返回值为元组类型,包含所有覆盖该索引区间的标签名称;如果区间内没有绑定任何标签,会返回空元组。
- 不要和无参数调用的
tag_names()混淆:无参数调用时返回的是当前Text组件中所有已定义的标签全集,不是指定范围的绑定标签。 - 如果需要判断某个特定标签是否绑定在该单词上,直接做成员判断即可,示例:
if "highlight" in word_tags: print("当前单词绑定了高亮标签")
内容的提问来源于stack exchange,提问作者Naitik Mundra
相关产品推荐
相关产品推荐

