Seite 1 von 1
Elementposition im Canvas
Verfasst: Montag 5. Januar 2009, 20:31
von classic
Hallo,
ich habe folgendes Problem, dass ich die Position eines Elementes in einer Canvas auslesen möchte.
Also dass ich zum Beispiel prüfe, ob ich ein Element (Ellipse, Rechteck, o.a.) durch .move auf ein anderes Element geschoben habe oder ob ein Element über den Rand der Canvas verschoben wurde.
Boardsuche und Google schon benutzt aber nichts gefunden
MfG
classic
Re: Elementposition im Canvas
Verfasst: Montag 5. Januar 2009, 21:20
von numerix
classic hat geschrieben:Boardsuche und Google schon benutzt aber nichts gefunden
Das sollte helfen:
http://infohost.nmt.edu/tcc/help/pubs/t ... thods.html
Verfasst: Montag 5. Januar 2009, 21:22
von wuf
Hallo classic
Hierfür kannst du die Canvas-Methode 'coords' verwenden:
Code: Alles auswählen
import Tkinter as tk
app_window = tk.Tk()
canvas = tk.Canvas(app_window, bg='steelblue3', highlightthickness=0,
width=200, height=150)
canvas.pack()
canvas.create_rectangle(30, 30, 80, 80, fill='green', tag='rechteck')
print
x0, y0, x1, y1 = canvas.coords('rechteck')
print 'Meine Start-Position ist x0=%d, y0=%d, x1=%d, y1=%d:' % (x0, y0, x1, y1)
canvas.move('rechteck', 10, 10)
print
x0, y0, x1, y1 = canvas.coords('rechteck')
print 'Meine neue Position ist x0=%d, y0=%d, x1=%d, y1=%d:' % (x0, y0, x1, y1)
print
app_window.mainloop()
Gruss wuf
Verfasst: Montag 5. Januar 2009, 21:29
von classic
@numerix: Danke für den Link, doch ich denke die Methode von wuf ist nciht schlecht und da muss ich mich nciht durch sehr lange Texte durcharbeiten.
@wuf: Dankeschön sehr hilfreich, damit lässt sich mein problem lösen.
MfG
classic
Verfasst: Montag 5. Januar 2009, 22:19
von numerix
classic hat geschrieben:@numerix: Danke für den Link, doch ich denke die Methode von wuf ist nciht schlecht und da muss ich mich nciht durch sehr lange Texte durcharbeiten.
Der leichteste Weg zum Ziel ist nicht immer der (langfristig) beste.
Oder anders gesagt (wie ich es mal an der Tür eines Klassenraums gelesen habe): "Kein Lernen ohne Anstrengung."