在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)
希望这可以解决。
答案 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个月了?