Python Tkinter Canvas



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()

执行上述代码时,它会产生以下结果 -

tkinter canvas