Python Tkinter Canvas 是一个矩形区域,用于绘制图片或其他复杂的布局。您可以在 Canvas 上放置图形、文本、小部件或框架。
语法
以下是创建此小部件的简单语法 -
w = Canvas ( master, option=value, ... )
参数
- master - 这表示父窗口。
- options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 | 描述 |
---|---|
Bd |
边框宽度(以像素为单位)。默认值为 2。 |
Bg |
正常背景色。 |
Confine |
如果为 true(默认值),则画布不能滚动到 scrollregion 之外。 |
Cursor |
画布中使用的光标,如箭头、圆圈、点等。 |
Height |
焦点高亮显示的颜色。 |
Relief |
Relief 指定边框的类型。其中一些值为 SUNKEN、RAISED、GROOVE 和 RIDGE。 |
Scrollregion |
一个元组 (w, n, e, s),用于定义画布可以滚动的区域大小,其中 w 是左侧,n 是顶部,e 是右侧,s 是底部。 |
Width |
X 维度中画布的大小。 |
Xscrollincrement |
如果将此选项设置为某个正维度,则画布只能放置在该距离的倍数上,并且该值将用于通过滚动单位进行滚动,例如,当用户单击滚动条末端的箭头时。 |
Xscrollcommand |
如果画布是可滚动的,则此属性应该是水平滚动条的 .set() 方法。 |
Yscrollincrement |
工作方式与 xscrollincrement 类似,但控制垂直移动。 |
Yscrollcommand |
如果画布是可滚动的,则此属性应为垂直滚动条的 .set() 方法。 |
Canvas 小部件可以支持以下标准项目 -
arc − 创建圆弧项,该项可以是和弦、饼形切片或简单圆弧。
coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")
image − 创建一个图像项,该项可以是 BitmapImage 或 PhotoImage 类。
filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)
line − 创建行项目。
line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)
oval - 在给定坐标处创建圆或椭圆。它需要两对坐标;椭圆的边界矩形的左上角和右下角。
oval = canvas.create_oval(x0, y0, x1, y1, options)
polygon − 创建必须至少具有三个顶点的多边形项。
oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)
例
请自行尝试以下示例 -
from tkinter import *
from tkinter import messagebox
top = Tk()
C = Canvas(top, bg="blue", height=250, width=300)
coord = 10, 50, 240, 210
arc = C.create_arc(coord, start=0, extent=150, fill="red")
line = C.create_line(10,10,200,200,fill='white')
C.pack()
top.mainloop()
执行上述代码时,它会产生以下结果 -
