Tkinter Canvas 绘制矩形
create_rectangle()它的使用方式如下。
create_rectangle(x1, y1, x2, y2, options)
(x1,y1)和(x2,y2)是矩形左上角和右下角的坐标,下列是常用的options用法。
(1)dash
:建立虚线,与create_line( )相同。
(2)dashoffset
:与dash一样产生虚线,但是一开始数字是空白的宽度。
(3)fill
:矩形填充颜色。
(4)outline
:设置矩形线条颜色。
(5)stipple
:绘制位图矩形。
(6)width
:矩形线条宽度。
示例1
在画布内随机产生不同位置与大小的矩形。
from tkinter import *
from random import *
tk = Tk()
tk.title("apidemos.com")
canvas = Canvas(tk, width=640, height=480)
canvas.pack()
for i in range(20):
x1, y1 = randint(1,640), randint(1,480)
x2, y2 = randint(1,640), randint(1,480)
if x1 > x2:
x1,x2 = x2,x1
if y1 > y2:
y1,y2 = y2,y1
canvas.create_rectangle(x1,y1,x2,y2)
# canvas.create_line(x1,y1,x2,y2)
tk.mainloop()
输出:
这个程序每次执行时都会产生不同的结果,有一点儿艺术画的效果。使用create_rectangle( )时,在options参数字段可以用fill=’color’设置矩形填充颜色,用outline=’color’设置矩形轮廓颜色。
示例2
绘制三个矩形,第一个使用红色填充轮廓色是默认设置,第二个使用黄色填充轮廓是蓝色,第三个使用绿色填充轮廓是灰色。
from tkinter import *
from random import *
tk = Tk()
tk.title("apidemos.com")
canvas = Canvas(tk, width=640, height=480)
canvas.pack()
canvas.create_rectangle(10,10,120,60,fill="red")
canvas.create_rectangle(130,10,200,80,fill="yellow",outline='blue')
canvas.create_rectangle(210,10,300,60,fill="green",outline='grey')
tk.mainloop()
输出:
由执行结果可以发现,由于画布底色是浅灰色,所以第三个矩形用灰色轮廓,几乎看不到轮廓线,另外也可以用width设置矩形轮廓的宽度。