Seite 1 von 1

Canvas: Rechtecke verändern

Verfasst: Sonntag 12. Mai 2013, 10:51
von strekysh
Ich versuche gerade Snake zu programmieren. Das Spielfeld ist ein Canvas, auf das ich Rechtecke zeichne, was soweit auch funktioniert. Damit sich die Schlange bewegt, muss sich aber die Farbe der Rechtecke ändern lassen, und da finde ich nicht raus, wie das geht.

Unter Python 2.2 ging meine ich:

Code: Alles auswählen

from Tkinter import *
#Canvas namens cv erstellen, in ein Fenster zeichnen
r = Rectangle(cv, 1, 1, 10, 10, fill="red") #Die Zahlen sind die Koordinaten der Eckpunkte
r.pack()
r.configure(fill="green")
Gibt es eine Möglichkeit in Python3.2 die Rechecke als eigene Objekte mit dem Typ Recheck zu erzeugen (Also analog zu den Text- und Label-Widgets)?

Re: Canvas: Rechtecke verändern

Verfasst: Sonntag 12. Mai 2013, 11:04
von BlackJack
@strekysh: Das dürfte auch mit Python 2.x nicht gehen. Du bekommst kein Grafikobjekt zurück sondern ein Tag für das Grafikelement und das kannst Du dann an bestimmte Methoden vom `Canvas` übergeben um Veränderungen vorzunehmen. Ungetestet:

Code: Alles auswählen

rectangle = Rectangle(canvas, 1, 1, 10, 10, fill='red')
# 
# Und später dann:
# 
canvas.itemconfig(rectangle, fill='green')

Re: Canvas: Rechtecke verändern

Verfasst: Sonntag 12. Mai 2013, 19:39
von strekysh
Diese Methode hab ich aus einem Buch, das ist aber schon mehrere Jahre alt.
Aber die von Dir angegebene Methode funktioniert, vielen Dank dafür. Bild