Tkinter创建 Canvas - 快速指南

400 阅读4分钟

编码员们好!在这篇文章中,我们将使用Tkinter来绘制不同的形状。在之前的博客中,使用Tkinter画线 的主题只是这个最先进概念的一个良好开端。读者可以在这个网址上看到它。因此,在这篇博客中,我们将向新的方向发展,让我们绘制一些更多的形状。

基本设置

对于我们的项目文件,建立一个新的目录总是一个好的编程实践。这有助于我们为将来的目的更快地整理东西。

  1. 创建一个文件夹,即: Tkinter Shapes
  2. 创建一个Python文件来存放我们的脚本/代码。完成了!,我们就可以开始编码了。
  3. 如果任何从业者想要的话,他们可以为每个代码创建单独的Python脚本。

创建Tkinter Canvas

Tkinter中的Canvas是一个基本窗口,它帮助我们进行绘图和相关的工作。它是一个白色的屏幕,就像白板一样,我们有彩色的粉笔,它可以随时显示我们的草图。下面是设置Canvas的代码。

代码

from tkinter import Tk
from tkinter import Canvas

window = Tk()
window.geometry("400x400")
window.configure(background = "grey")
window.title("Canvas - Draw Shapes")
window.resizable(False, False)

# setting up the canvas
canvas = Canvas(width = 350, height = 350, bg = "white")
canvas.pack(pady = 20)

window.mainloop()

输出

Canvas Screen

画布屏幕

所以,我们的Tlkinter窗口中间有一个Canvas。

  1. 它的分辨率是350×350
  2. 背景被设置为白色

绘制图形的函数

有一些内置的函数可以在 Canvas 上绘制图形。这些函数是由 Canvas 类本身派生出来的。列表如下:

  1. create_line() - 绘制一条直线。
  2. create_arc() - 在屏幕上勾画弧线。
  3. create_oval() - 绘制椭圆、圆形、椭圆。
  4. create_polygon() - 描画六边形、五边形等。

让我们看看这里对我们最重要的2个函数--create_arc()和create_oval()方法。让我们开始吧!

在Tkinter中创建弧线

代码

from tkinter import Tk
from tkinter import Canvas

window = Tk()
window.geometry("400x400")
window.configure(background = "grey")
window.title("Canvas - Draw Shapes")
window.resizable(False, False)

# setting up the canvas
canvas = Canvas(width = 350, height = 350, bg = "white")
canvas.pack(pady = 20)

# create a text that renders the name of our shape
canvas.create_text(175, 30, text = "Arc", font = ("Arial", 30))

#create an arc
canvas.create_arc(0, 340, 200, 100, width = 5)

window.mainloop()

输出

Drawing An Arc Using Tkinter

绘制一个弧线

解释一下:

  1. 前七行代码是窗口和画布的基本设置。
  2. 从这八行开始,我们画一个弧线。调用**create_arc()函数。为了把它放在轴平面上,给出坐标(x1, y1, x2, y2)。最后一个参数是宽度。**这是为形状的厚度准备的。
  3. 我们还可以使用填充参数为弧线添加颜色。只要在create_arc()中调用它,然后以字符串格式给出颜色名称****。"color_name"。
  4. 为了增加更多的细节,我们使用create_text()函数渲染一个文本。我们把它放在Canvas的顶部,并给出Arial 的字体和30的大小。

绘制彩色弧线的代码

from tkinter import Tk
from tkinter import Canvas

window = Tk()
window.geometry("400x400")
window.configure(background = "grey")
window.title("Canvas - Draw Shapes")
window.resizable(False, False)

# setting up the canvas
canvas = Canvas(width = 350, height = 350, bg = "white")
canvas.pack(pady = 20)

canvas.create_text(175, 30, text = "Arc", font = ("Arial", 30))
canvas.create_arc(0, 340, 200, 100, width = 5, fill = "orange")

window.mainloop()

输出

A Colorful Arc

一个彩色的弧线

所以,代码和前面的一样。我们只需在create_arc()函数中添加填充参数,就可以得到一个漂亮的结果。

在Tkinter中创建圆和椭圆

准备好用Tkinter创建一个椭圆了吗?让我们直接开始吧。

椭圆形的代码

from tkinter import Tk
from tkinter import Canvas

window = Tk()
window.geometry("400x400")
window.configure(background = "grey")
window.title("Canvas - Draw Shapes")
window.resizable(False, False)

# setting up the canvas
canvas = Canvas(width = 350, height = 350, bg = "white")
canvas.pack(pady = 20)

canvas.create_text(175, 20, text = "Circle", font = ("Arial", 30))
canvas.create_oval(175, 100, 100, 175, width = 3)

window.mainloop()

输出

The Green Oval

绿色的椭圆

解释一下

  1. 前七行是Tkinter和canvas的基本设置。
  2. 在Canvas对象中,我们调用**create_oval()**函数。这负责追踪椭圆和圆形。
  3. 给出坐标,然后就有了我们的结果。

create_oval()方法也可以帮助你创建圆形。只需确保x1和y2相同,x2和y1相同。

圆的代码

from tkinter import Tk
from tkinter import Canvas

window = Tk()
window.geometry("400x400")
window.configure(background = "grey")
window.title("Canvas - Draw Shapes")
window.resizable(False, False)

# setting up the canvas
canvas = Canvas(width = 350, height = 350, bg = "white")
canvas.pack(pady = 20)

canvas.create_text(175, 20, text = "Circle", font = ("Arial", 30))
canvas.create_oval(175, 100, 100, 175, width = 3)

window.mainloop()

输出

A Circle

一个圆

结论

这样,我们就可以使用Tkinter的Canvas和内置的形状函数来绘制不同的形状。这个库对于GUI编程和开发来说,是非常适合初学者使用的。我建议读者玩一玩代码,并尝试定制这些形状。我希望这将是一篇有趣的文章。