Seite 1 von 1
Zwei fragen zur Maus
Verfasst: Freitag 29. Mai 2009, 17:26
von krisi12345
Frage nr. 1:
Wie kann man abfragen wo die Maus gerade ist?
Frage nr. 2:
Wie kann man abfragen ob die Maus auf einem Objekt ist(in meinem Fall im Canvas "Feld") und dann Klickt?
Verfasst: Freitag 29. Mai 2009, 18:31
von wuf
Hallo krisi12345
Abfragen wo die Maus momentan steht ist schwierig. Auf welchem Objekt sie sich befindet kann mit Programmierung ermittelt werden. Wenn du aber die Mausaktivität durch deren Ereignisse abfängst sieht es wie folgt aus:
a):
Code: Alles auswählen
import Tkinter as tk
def button_press(event):
print 'Linke Maustaste gedrueckt'
print "screen-x %d, screen-y %d" % (event.x_root, event.y_root)
print "app-win-x %d, app-win-y %d" % (event.x, event.y)
print
def mouse_motion(event):
print 'Maus in Bewegung'
print "screen-x %d, screen-y %d" % (event.x_root, event.y_root)
print "app-win-x %d, app-win-y %d" % (event.x, event.y)
print
app_win = tk.Tk()
app_win.bind('<Button-1>', button_press)
app_win.bind('<Motion>', mouse_motion)
app_win.mainloop()
b):
Code: Alles auswählen
import Tkinter as tk
def button_press(event):
print 'Linke Maustaste gedrueckt'
print "screen-x %d, screen-y %d" % (event.x_root, event.y_root)
print "app-win-x %d, app-win-y %d" % (event.x, event.y)
print
def mouse_motion(event):
print 'Maus in Bewegung'
print "screen-x %d, screen-y %d" % (event.x_root, event.y_root)
print "app-win-x %d, app-win-y %d" % (event.x, event.y)
print
def mouse_enter(event):
canvas.config(cursor='hand1')
def mouse_leave(event):
canvas.config(cursor='')
#~~ Erzeuge Hauptfenster
app_win = tk.Tk()
app_win.config(bg='steelblue')
#~~ Erzeuge eine Canvas-Flaeche
canvas = tk.Canvas(app_win, bg='yellow', relief='raised', bd=2,
highlightthickness=0)
canvas.pack(padx=10, pady=10)
#~~ Erzeuge ein Canvas-Objekt (Rechteck)
canvas.create_rectangle(20, 20, 120, 120, outline='darkgreen',
fill='darkgreen', stipple='gray50', tags='rechteck')
#~~ Binde Mausereignisse an das Canvas-Objekt (Rechteck)
canvas.tag_bind('rechteck', '<Button-1>', button_press)
canvas.tag_bind('rechteck', '<Motion>', mouse_motion)
canvas.tag_bind('rechteck', '<Enter>', mouse_enter)
canvas.tag_bind('rechteck', '<Leave>', mouse_leave)
app_win.mainloop()
Zur Weiterbildung folgende Links:
http://effbot.org/tkinterbook/canvas.htm
http://infohost.nmt.edu/tcc/help/pubs/t ... anvas.html
Gruss wuf

Verfasst: Freitag 29. Mai 2009, 21:33
von krisi12345
O.K. vielen DANK!