tkinter学习系列之(八) Canvas控件
目录
前言
由于最近想在tkinter里内嵌matplotlib,由于用到tkinter里的carves控件,先学习一下。
carves就是画布的意思,用于画图。
(一)carves创建方法
(1)说明:
与其他的控件一样,carves的创建方也是在tk里。
(2)源代码:
import tkinter as tk
win = tk.Tk()
win.geometry("600x400+200+100")
# 创建画布
canvas = tk.Canvas(win, bg="orange")
canvas.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.9)
win.mainloop()
(3)输出效果:
(二)carves的画图方法
(1)说明:
方法 | 说明 | 参数 |
---|---|---|
.create_line() | 画线 | (起始坐标),(终点坐标),width=线宽,fill=颜色 |
.create_arc() | 画圆弧 | (起始坐标),(终点坐标),width=线宽,fill=颜色 |
.create_rectangle() | 画矩形 | (起始坐标),(终点坐标),fill='填充的颜色, outline=边框的颜色 |
.create_oval() | 画椭圆 | (外接矩阵的四个坐标),fill='填充的颜色, outline=边框的颜色 |
.create_polygon() | 画多边形 | d多个点的坐标,fill='填充的颜色, outline=边框的颜色 |
.create_text() | 显示文字 | text="文字" |
.delete() | 删除对象 | 创建线返回的对象 |
(2)源代码:
import tkinter as tk
win = tk.Tk()
win.geometry("600x400+200+100")
canvas = tk.Canvas(win, bg="orange")
canvas.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.9)
# 画一条实线, fill:填充的颜色
line1 = canvas.create_line((0, 0), (100, 100), width=5, fill="red")
# 画一条虚线 dash=(1, 1)
canvas.create_line((200, 200), (200, 300), width=5, fill="green", dash=(1, 1))
# 画一个圆弧
canvas.create_arc((100, 100), (200, 200), width=5)
# 显示文字
canvas.create_text((300, 100), text="文字", font=("微软雅黑", 18))
# 绘制矩形, outline:线条颜色
canvas.create_rectangle(50, 25, 150, 75, fill='blue', outline='green', width=5)
# 绘制椭圆
canvas.create_oval(200, 25, 350, 75, fill='pink', outline='green', width=5)
# 绘制多边形
point = [(100, 100), (100, 200), (200, 300), (300, 400), (400, 500)]
canvas.create_polygon(point, outline='green', fill='yellow')
def dele_line():
canvas.delete(line1)
btn = tk.Button(canvas, text="删除", command=dele_line)
btn.place(relx=0.4, rely=0.8)
win.mainloop()