一.Canvas图形绘制技术
Canvas为Tkinter提供了绘图功能,其提供的图形绘制函数可绘制线性,圆形,椭圆,多边形,图片等。
1.Canvas画布组件
Canvas(画布)是一个长方形的区域,用于图形绘制或复杂的图形界面布局。用户可以在画布上绘制图形,文字,放置各种组件和框架。
Canvas对象创建方法:Canvas对象 = Canvas(窗口对象,选项,···)
显示Canvas对象的方法如下:
Canvas对象.pack()
eg:创建一个背景为白色,宽带为300,高度为120的Canvas画布的代码:
from tkinter import *
root = Tk()
cv = Canvas(root, bg='white', width=300, height=120)
cv.create_line(10, 10, 100, 80, width=2, dash=7) # 绘制直线
cv.pack() # 显示画布
root.mainloop()
2.Canvas上的图形对象
(1)绘制图形对象:(常用绘制函数)
create_arc():绘制圆弧
create_line():绘制直线
create_bitmap():绘制位图
create_image():绘制位图图像
create_oval():绘制椭圆
create_polygon():绘制多边形
create_window():绘制子窗口
create_text():创建一个文字对象
(Canvas上的每个绘制对象都有一个标识id(整数),使用绘制函数创建绘制对象时,返回绘制对象的id:
eg:
id1 = cv.create_line(10, 10, 100, 80, width=2, dash=7) # 绘制直线
)
(2)tags设置图形对象标记:
eg:
rt = cv.create_rectangle(10, 10, 110, 110, tags='r1') # 指定矩形对象rt具有一个标记r1)
rt = cv.create_rectangle(10, 10, 110, 110, tags = ('r1','r2','r3')) # 指定矩形对象rt具有三个标记r1, r2, r3
指定标记后,使用find_withtag()方法可以获取指定tag的图形对象,然后设置图形对象的属性
find_withtag()方法的语法如下:
Canvas对象.find_withtag(tag名)
find_withtag()方法返回一个图形对象数组,其中包含所以具有tag名的图形对象
使用itemconfig()方法可以设置图形对象的属性,语法如下:
Canvas对象.itemconfig(图形对象,属性1 = 值1,属性2 = 值2,···)
eg:使用属性tags设置图形对象标记的示例
from tkinter import *
root = Tk()
root = Tk()
# 创建一个Canvas, 设置其背景色为白色
cv = Canvas(root, bg='white', width=200, height=200)
# 使用tags指定给第一个矩形指定三个tag
rt = cv.create_rectangle(10, 10, 10, 110, tags = ('r1','r2','r3'))
cv.pack()
cv.create_rectangle(20, 20, 80, 80, tags='r3') # 使用tags为第二个矩形指定一个tag
# 将所有与tag('r3')绑定的item边框颜色设置为蓝色
for item in cv.find_withtag('r3'):
cv.itemconfig(item, outline='blue')
root.mainloop()