python用tkinter画圆_[译][Tkinter 教程08] Canvas 图形绘制

简介

Canvas 为 Tkinter 提供了绘图功能. 其提供的图形组件包括 线形, 圆形, 图片, 甚至其他控件. Canvas 控件为绘制图形图表, 编辑图形, 自定义控件提供了可能.

在第一个例子里, 我们将演示如何画一条直线. create_line(coords, options) 方法用来绘制一条直线. coords 为以整形表示的四个坐标参数: x1, y1, x2, y2 . 这表示所要绘制的直线连接了 (x1, y1) 和 (x2, y2) 这两个点. 除坐标外, 该方法还接受其他可选的 options 参数. 在下面的例子里我们用 options 参数指定颜色为我们网站的主题色: fill=#476042 .

因为是第一个例子, 所以我们尽量做了简化: 创建一个 canvas 对象然后在其上绘制一条水平直线. 这条直线将 canvas 分割为上下两部分.

在传入坐标参数时, y = int(canvas_height / 2) 这种强制转换整形的表达式是没有必要的, 因为 create_line() 方法也接受 float 类型作为坐标参数, float 坐标数值将被自动转为整形. 下面是第一个例子的代码:

from tkinter import *

master = Tk()

canvas_width = 80

canvas_height = 40

w = Canvas(master,

width=canvas_width,

height=canvas_height)

w.pack()

y = int(canvas_height / 2)

w.create_line(0, y, canvas_width, y, fill="#476042")

mainloop()

上述代码在 Python3 下会有如下显示:

使用 create_rectangle(coords, options) 方法可以绘制矩形. coords 参数依然表示两个点的坐标: 第一个点为左上角坐标, 第二个点为右下角坐标.

上面的窗口是由以下示例代码生成的:

from tkinter import *

master = Tk()

w = Canvas(master, width=200, height=100)

w.pack()

w.create_rectangle(50, 20, 150, 80, fill="#476042")

w.create_rectangle(65, 35, 135, 65, fill="yellow")

w.create_line(0, 0, 50, 20, fill="#476042", width=3)

w.create_line(0, 100, 50, 80, fill="#476042", width=3)

w.create_line(150,20, 200, 0, fill="#476042", width=3)

w.create_line(150, 80, 200, 100, fill="#476042", width=3)

mainloop()

下图阐释了上面两个例子中 create_lines() 和 create_rectangle() 这两个方法中, 用到的各个坐标的含义:

绘制文字

接下来我们将说明如何在 canvas 上绘制文字. 我们将直接修改上面的例子以作为新的示例. create_text() 方法用来在 canvas 上绘制文字. 该方法的头两个参数表示所要绘制的文字的坐标. 默认情况下, 文字将以此坐标为中心进行绘制. 当然, 你也可以复写 anchor 属性来改变文字绘制的对齐方式. 比如, anchor = NW 即为指定该点坐标为所绘文字的左上角. text 属性用以指定具体绘制在 canvas 上的文字.

from tkinter import *

canvas_width = 200

你可能感兴趣的:(python用tkinter画圆_[译][Tkinter 教程08] Canvas 图形绘制)