web-dev-qa-db-fra.com

Tkinter Canvas créant un rectangle

En python, tkinter, j'essaie de créer un jeu qui implique de créer des formes sur une toile. Par exemple, je veux qu'un rectangle rouge apparaisse sur mon image de toile. Lorsque j'exécute mon code, le rectangle que vous voyez fait environ 1 pixel, et je ne sais pas pourquoi et comment il est devenu ainsi. Voici mon code:

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)

J'espère que cela pourra être résolu.

10
Jake

La méthode create_rectangle Prend 4 coordonnées: canvas.create_rectangle(x1, y1, x2, y2, **kwargs), avec (x1, y1) les coordonnées du coin supérieur gauche et (x2, y2) celles du coin inférieur droit. Mais vous avez donné deux fois les mêmes coordonnées afin que votre rectangle ait une largeur et une hauteur nulles, c'est pourquoi vous ne pouvez voir qu'un pixel. Essayez avec canvas.create_rectangle(50, 0, 100, 50, fill='red') et cette fois, vous devriez obtenir un carré de 50 pixels de côté.

Vous pouvez obtenir plus de détails sur les arguments de create_rectangle Sur ce site Web .

16
j_4321