Canvas: Rechtecke verändern

Fragen zu Tkinter.
Antworten
strekysh
User
Beiträge: 2
Registriert: Sonntag 12. Mai 2013, 10:38

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)?
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')
strekysh
User
Beiträge: 2
Registriert: Sonntag 12. Mai 2013, 10:38

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
Antworten