更改Tkinter.Canvas中的特定字符颜色

时间:2015-10-16 06:22:59

标签: python python-3.x canvas tkinter

我试图在Tkinter.Canvas中更改特定的字符颜色...我在网上搜索解决方案而没有任何内容。

txt1 = canvasFrame.create_text(500,100, text = "redblue", font = "Calibri, 30", fill = "#4587de")

实际颜色是蓝色,我需要画出红色字符串'红色和蓝色字符串'仍然是蓝色。

有办法做到这一点吗?

2 个答案:

答案 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答案。