Canvas控件(画布控件)可用于绘图,包括线条、几何图形或文字等。由于Canvas控件具有画布功能,因此可以借助鼠标的移动进行图形的基本绘制。

使用Canvas控件进行图形绘制有两种坐标系统:
– Windows坐标系,以屏模的左上角为原点(x=0,y=0).
– Canvas控件的坐标系统,按照指定位置进行绘制

Canvas控件的相关属性

参数 说明
bg 背景颜色
bd 边框粗细
fg 前景颜色
height 设置高度
width 设置宽度

1.加入位图图像

要在Canvas控件中加载位图图像,可调用create_image()方法,语法如下:

create_image(position,**options)
  • position:坐标位置x1,y1

此处,create_image()方法无法读取一般的图像,只能读取经过处理的image对象,所以要经过两个步骤:
– 用PhotoImage()构造函数读取图像,再用image对象存储
– 调用create_image()方法的参数image来获取图像

from tkinter import *

win = Tk()
win.title('Canvas绘图')
photo = PhotoImage(file='03.png')
gs = Canvas(win)
gs.create_image(80, 120, image=photo)
gs.pack()
mainloop()

在上面的程序代码中,用PhotoImage加载图像并存储在对象photo中我们可以加载png或gif格式的图像。如载入jpg格式,则会发生无法识别图片格式的错误。接着创建一个Canvas控件,名称为gs,再通过这个Canvas控件调用create_image()方法,并用参数image获取图像。注意,这里的坐标值以canvas控件所指定的为主。

2.绘制几何图形

Canvas控件可绘制的几何图形包括弧形、扇形、线、圆形或椭圆形、矩形、文字等。

from tkinter import *

win = Tk()
win.title('绘制线条和矩形')
gs = Canvas(win, width=300, height=300)
gs.pack()
gs.create_rectangle(50, 20, 200, 200, fill='#AABBFF')
gs.create_rectangle(70, 40, 200, 200, fill='#AACC69')
gs.create_rectangle(90, 60, 200, 200, fill='#B9C8FF')
gs.create_rectangle(110, 80, 200, 200, fill='#B886D0')
# 左上角
gs.create_line(0, 0, 50, 20, fill='#0E6042', width=5)

mainloop()

发表评论

邮箱地址不会被公开。 必填项已用*标注