En python, tkinter, estoy tratando de hacer un juego que implique crear formas en un lienzo. Por ejemplo, quiero que aparezca un rectángulo rojo sobre la imagen de mi lienzo. Cuando ejecuto mi código, el rectángulo que ves tiene un tamaño aproximado de 1 píxel, y no estoy seguro de por qué y cómo se hizo así. Aquí está mi código:
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)Espero que esto se pueda resolver.
El método create_rectangle toma 4 coordenadas: canvas.create_rectangle(x1, y1, x2, y2, **kwargs) , siendo (x1,y1) las coordenadas de la esquina superior izquierda y (x2, y2) las de la esquina inferior derecha. Pero diste el doble de las mismas coordenadas, por lo que tu rectángulo tiene cero ancho y alto, por eso solo puedes ver un píxel. Prueba con canvas.create_rectangle(50, 0, 100, 50, fill='red') y esta vez deberías obtener un cuadrado de 50 píxeles de lado.
Puede obtener más detalles sobre los argumentos de create_rectangle en este sitio web .
Además, si desea crear un rectángulo con tamaño dinámico, puede hacerlo
canvas.create_rectangle(x, y, x+width, y+height, fill='red') Esto creará un rectángulo con el width y la height especificados.