我希望在Tkinter
中显示我的传奇,就像在matplotlib
中一样。
说我在我的风筝上有这三行:
from Tkinter import Button, Canvas, Tk
root = Tk()
canvas = Canvas()
canvas.grid()
canvas.create_line(0, 0, 20, 20, fill='green', width=2, tags='line1')
canvas.create_line(30, 30, 40, 40, fill='red', width=2, tags='line2')
canvas.create_line(50, 50, 60, 60, fill='blue', width=2,tags='line3')
root.mainloop()
如何在画布的左下角设置图例,如下所示:
-------------------------
| —————— line1 |
| —————— line2 |
| —————— line3 |
-------------------------
上面的ASCII图例仅供参考。我真正想要的是一个由内置函数完成的精彩传奇。不过,我不确定它的可行性。
答案 0 :(得分:0)
没有内置功能来创建图例
您可以使用.create_text()
方法在画布上显示文字:
from Tkinter import *
root = Tk()
canvas = Canvas(root)
canvas.grid()
canvas.create_line(0, 0, 20, 20, fill='green', width=2, tags='line1')
canvas.create_line(30, 30, 40, 40, fill='red', width=2, tags='line2')
canvas.create_line(50, 50, 60, 60, fill='blue', width=2,tags='line3')
legend_text = """
-------------------
| ------ line1 |
| ------ line2 |
| ------ line3 |
-------------------"""
legend_frame = LabelFrame(canvas,text='Legend',padx=5, pady=5)
legend_label = Label(legend_frame,text=legend_text)
legend_label.pack()
canvas.create_window(120,200,window=legend_frame,anchor=E)
root.mainloop()
注意:不幸的是—
符号不是有效的unicode字符,因此我将其替换为减号-
答案 1 :(得分:0)
画布没有内置的传说设施。它只是一个空白画布,您可以在其上绘制线条,多边形,圆形和图像。您必须编写一个函数来绘制图例。