Hallo,
ich spiele in letzter Zeit etwas mit Tkinter und Canvasobjekten rum. Nun will ich z.B. 10 Objekte erstellen und jedem einen eigenen Tag geben, um sie später schneller wiederzufinden. Also so gehts jedenfalls nicht:
for i in range (0,10):
canvas.create_oval(1,1,2,2,tag=i)
Sicher kommt die frage, warum ich das Objekt nicht mit "find_closest" suche - das ist richtig, aber bei mehr Objekten (>100) überlagern diese sich und der Aufwand für das Finden wird sehr groß.
Ich dachte es gab ne lösung mit der lambda Funktion, aber ich kann mich einfach nicht daran erinnern.
Also vielen Dank für Eure Tipps...
Spooky
Tag-Bezeichner bei Canvas-Objekten
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Gruß, mawe
Was genau geht da nicht? Ich meine, ausser dass alle ovals übereinander liegen, passts eigentlich.spooky0815 hat geschrieben: Also so gehts jedenfalls nicht:
for i in range (0,10):
canvas.create_oval(1,1,2,2,tag=i)
Gruß, mawe
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
das "tag=i" geht so nicht...
d.h. nicht jedes Objekt hat , wie eigentlich gewollt, ein eigenes tag (nämlich den jeweiligen i wert).
mache ich dann damit folgendes:
for i in canvas.find_withtag("2"):
canvas.delete(i)
--> nun wird anstatt dann nur das eine Objekt mit dem tag 2 (wie ich es möchte) alle Objekte gelöscht
(
Tipps ??
spooky
d.h. nicht jedes Objekt hat , wie eigentlich gewollt, ein eigenes tag (nämlich den jeweiligen i wert).
mache ich dann damit folgendes:
for i in canvas.find_withtag("2"):
canvas.delete(i)
--> nun wird anstatt dann nur das eine Objekt mit dem tag 2 (wie ich es möchte) alle Objekte gelöscht

Tipps ??

spooky
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Ja, verstehe. Tipp? ... Bitte sehr
Brauchbar?

Code: Alles auswählen
from Tkinter import *
root = Tk()
c = Canvas()
c.pack()
for i in range(5,15):
c.create_oval(10,10+i*10,20,20+i*10,fill="blue",tags="oval%s" % i)
c.itemconfig("oval7", fill="red")
root.mainloop()
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
perfekt
DANKE !!!

DANKE !!!