我试图在Tkinter.Canvas中更改特定的字符颜色...我在网上搜索解决方案而没有任何内容。
txt1 = canvasFrame.create_text(500,100, text = "redblue", font = "Calibri, 30", fill = "#4587de")
实际颜色是蓝色,我需要画出红色字符串'红色和蓝色字符串'仍然是蓝色。
有办法做到这一点吗?
答案 0 :(得分:1)
画布不允许对一个字符串对象使用多种颜色。您需要使用两个create_text
命令,每种颜色一个。这也意味着你必须计算画布上两个字符串的正确间距和对齐方式,使它看起来像一个字符串。
如果您需要为单个字符着色,画布不是一个非常好的解决方案。如果可以,您可能希望切换到使用文本小部件。
答案 1 :(得分:0)
可以在画布上放置文本小部件(带彩色文本)。
from tkinter import *
root = Tk()
canvas = Canvas(root)
canvas.pack()
text = Text(canvas, height=1, width=20)
text.insert('end', 'red green blue')
text['state'] = DISABLED # read only
canvas.create_window(100, 20, anchor='nw', window=text)
root.mainloop()
使用标签在文本中着色切片还有其他SO答案。