Tkinter文本着色失效求助:标签配置为何无法生效?
问题原因及解决方案
你的代码核心问题是操作顺序颠倒,再加上标签范围不匹配文本长度,导致高亮效果无法显示:
- 你先给文本框的
1.1到1.15范围添加标签,但此时文本框是空的,没有任何内容对应这个标签;之后插入的'OOT?'会占据初始位置,标签自然绑定不到实际文字上。 - 另外你插入的
'OOT?'只有4个字符(索引从1.0到1.4),设置的标签范围1.1到1.15远超出文本长度,就算顺序正确也看不到完整效果。
修正后的代码需要先插入文本,再给对应范围添加标签:
# 先插入文本到文本框 oot_box.insert(1.0, 'OOT?') # 再根据条件添加并配置标签 if totalaxial == 0 and totalflexion == 0 and totalie == 0 and totalap == 0: oot_box.tag_add("start", '1.0', 'end') # 用end自动匹配文本末尾,不用手动计算长度 oot_box.tag_config("start", background="green", foreground="black") elif totalaxial != 0 or totalflexion != 0 or totalie != 0 or totalap != 0: oot_box.tag_add("start", '1.0', 'end') oot_box.tag_config("start", background="red", foreground="black")
如果只想高亮部分文字(比如仅'OOT'),可以把标签范围改成'1.0'到'1.3'。
内容的提问来源于stack exchange,提问作者Zane B
相关产品推荐
相关产品推荐

