Tkinter画布创建矩形


问题内容

在python
tkinter中,我正在尝试制作一个涉及在画布上创建形状的游戏。例如,我希望在我的画布图像上出现一个红色矩形。当我执行代码时,您看到的矩形的大小约为1像素,我不确定为什么以及如何得到它。这是我的代码:

from tkinter import *
root = Tk()
root.geometry("500x900")
canvas = Canvas(root, width=550, height=820)
canvas.pack()
png = PhotoImage(file = r'example.png') # Just an example
canvas.create_image(0, 0, image = png, anchor = "nw")

a = canvas.create_rectangle(50, 0, 50, 0, fill='red')
canvas.move(a, 20, 20)

希望这可以解决。


问题答案:

create_rectangle方法采用4个坐标: canvas.create_rectangle(x1, y1, x2, y2, **kwargs),其中(x1,y1)左上角的坐标,(x2,y2)右下角的坐标。但是您给了两次相同的坐标,所以矩形的宽度和高度为零,这就是为什么只能看到一个像素的原因。尝试一下,canvas.create_rectangle(50, 0, 100, 50, fill='red')这一次您应该获得侧面50像素的正方形。

您可以create_rectangle在此网站上获取有关参数的更多详细信息。