Event: event.x_root event.y_root

Fragen zu Tkinter.
Antworten
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Hallo @ all!

Ich habe in kleines Problem mit einem Event.

Das Event soll sich auf ein Canvas cv beziehen und wird mit Button-1 ausgelöst.
In der Prozedur für das Event möchte ich die x und y Koordinaten des Mauszeigers gemessen von den Koordinaten links oben (0.0) im Canvas haben.

Benutze ich also event.x_root und event.y_root, so bekomme ja nur die x und y Koordinaten von der linken oberen Ecke des Fenster.

Ich hoffe ihr könnt mir helfen,
Flo
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Die Lösung ist bestimmt eine, wo man sich mit der Hand vor die Stirn schlägt :wink: "root" sagt ja schon relativ zum absoluten Master. Deswegen reicht ja auch event.x bzw event.y :lol: .

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

Hi Pythonaya

Hier ein Beispiel für Dein Vorhaben

Code: Alles auswählen

from Tkinter import*

def ShowCoordinates(event):
	#~~ Schreibt die X und Y-Position auf die Canvas
	global dspxpos,dspypos

	xpos = event.x
	ypos = event.y

	canvas.delete(dspxpos)
	dspxpos = canvas.create_text(20,
								20,
								text="X-Position = " + str(xpos),
								font=font1,
								fill="blue",
								anchor="w")

	canvas.delete(dspypos)
	dspypos = canvas.create_text(20,
								40,
								text="Y-Position = " + str(ypos),
								font=font1,
								fill="blue",
								anchor="w")

root = Tk()

font1 = ('Helvetica', 15, 'bold')
dspxpos = None
dspypos = None

canvas = Canvas(root,width=200,height=100,bd=5,relief='raised',bg='yellow')
canvas.pack()
canvas.bind('<Button-1>', ShowCoordinates)

root.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Oh, ja, also das mit event.x ... kannte ich noch nicht.
Danke für die schnelle Antwort.



MFG,
Flo
Antworten