Position von Button oder Label abfragen

Fragen zu Tkinter.
Antworten
MarkusA
User
Beiträge: 3
Registriert: Donnerstag 27. Juni 2013, 14:13

Hallo Leute.

Ich gerade dabei etwas mit tkinter rum zu programieren.
Nachdem ich das Positionieren von Labels mit .place(x=xpos,y=ypos) so geht, wie ich das will
brauche ich jetzt aber noch eine Möglichkeit die Position des Labels wieder abzufragen.
Dazu habe ich leider noch nichts gefunden.
Hat hier einer einen Vorschlag?

cu
Markus
BlackJack

@MarkusA: Da man `place()` schon nicht verwenden sollte, erzähl doch erst einmal warum Du das machen willst‽
MarkusA
User
Beiträge: 3
Registriert: Donnerstag 27. Juni 2013, 14:13

Im Endeffekt geht es darum einige Bilder mit der Maus herumschieben zu können.
Da das Bild an einer belibigen Stelle mit der Maus "genommen" werden kann, kann ich das Bild ja nicht einfach auf die Mausposition setzen, sondern ich muss vorher die Diverenz zwischen Bild- und Maus-position berechnen.
Ausserdem brauche ich die Position für die Auswertung.

Bisher habe ich das Bild mit einem Label dargestellt und wollte dann das Label verschieben.

Markus


PS: warum sollte man place() denn nicht verwenden?
BlackJack

@MarkusA: Für so etwas würde ich ein Canvas als Grundlage verwenden.

Für so etwas geht `place()`, aber das ist ja auch keine normale GUI. Sonst hat `place()` das Problem dass die GUIs damit auf die Einstellungen auf dem Rechner „optimiert” sind auf dem sie erstellt wurden und auf anderen schlecht aussehen können oder sogar nicht vernünftig bedienbar sind.
MarkusA
User
Beiträge: 3
Registriert: Donnerstag 27. Juni 2013, 14:13

Das habe ich auch schon probiert.
Allerdings konnte ich nicht mehrere Canvas übereinander legen, was aber Möglich sein soll.

Also scheit place() doch das richtige für Pixelgenause positionieren zu sein.

Aber mein eigentliches Problem ist damit noch nicht gelöst.

Hat noch jemand eine Idee?


Markus
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi MarkusA
Hi MarkusA hat geschrieben:Allerdings konnte ich nicht mehrere Canvas übereinander legen, was aber Möglich sein soll.
Du brauchst eigentlich nur eine Canvas und legst dann darin mehrere Bilder übereinander. Die Anweisung hierfür wäre:

Code: Alles auswählen

canvas.create_image(xpos, ypos, image=your_image)
Gruss wuf :wink:
Take it easy Mates!
Antworten