Tkinter Canvas创建矩形

时间:2017-02-04 11:01:04

标签: python canvas 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)

希望这可以解决。

2 个答案:

答案 0 :(得分:13)

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像素的正方形。

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

答案 1 :(得分:0)

另外,如果你想创建一个动态大小的矩形,那么你可以这样做 -

canvas.create_rectangle(x, y, x+width, y+height, fill='red')

这将创建一个具有指定宽度和高度的矩形。

问这个问题已经4年零3个月了?