HI.
Ich würde gerne zwei Sachen in meiner GUI machen.
Als erstes würde ich gern, das ein Button ein Bild bekommt.
Das klappt auch schon einwandfrei.
Jetzt wäre es noch ideal, wenn sich das "Bild" auf dem Button ändert, wenn ich mit der Maus über dem Button bin.
Hab dazu aber leider noch nix gefunden.
Habt ihr da was für mich?
Danke
button change
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
@The Spirit: Dafür kannst Du die '<Enter>'- und '<Leave>'-Ereignisse verwenden:
Code: Alles auswählen
import Tkinter as tk
def main():
def on_enter(_event):
print 'Mauszeiger hat Button betreten.'
def on_leave(_event):
print 'Mauszeiger hat Button verlassen.'
root = tk.Tk()
button = tk.Button(root, text='Test')
button.bind('<Enter>', on_enter)
button.bind('<Leave>', on_leave)
button.pack()
root.mainloop()
if __name__ == '__main__':
main()
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
vielen dank.
das heist ich "zeichne" einfach den button jeweils neu wenn er "betreten" oder "verlassen" wird.
werd das heute abend gleich mal testen.
edit:
grad mal in der mittagspause damit rumprobiert.
aber wie kann ich die attribute von button damit ändern?
das heist ich "zeichne" einfach den button jeweils neu wenn er "betreten" oder "verlassen" wird.
werd das heute abend gleich mal testen.
edit:
grad mal in der mittagspause damit rumprobiert.
aber wie kann ich die attribute von button damit ändern?
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
keiner noch eine idee?
@The Spirit: Zugriff über Schlüssel oder per `config()`-Methode:
Code: Alles auswählen
def main():
def on_enter(event):
print 'Mauszeiger hat Button betreten.'
event.widget['text'] = 'Hallo'
def on_leave(event):
print 'Mauszeiger hat Button verlassen.'
event.widget['text'] = 'Test'
root = tk.Tk()
button = tk.Button(root, text='Test')
button.bind('<Enter>', on_enter)
button.bind('<Leave>', on_leave)
button.pack()
root.mainloop()
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
viele vielen dank nochmal
nur ne kurze frage noch für mich zum verständnis.
wo passiert jetzt die verknüpfung zwischen dem button text und der variable in der funktion?
rein über den funktionsaufruf?
nur ne kurze frage noch für mich zum verständnis.
wo passiert jetzt die verknüpfung zwischen dem button text und der variable in der funktion?
rein über den funktionsaufruf?
@The Spirit: Ich weiss nicht ob ich die Frage richtig verstehe!? ``event.widget`` ist in diesem Fall das `Button`-Exemplar. So eine Ereignisbehandlung wird ja immer mit einem Ereignis-Objekt aufgerufen und das kennt das Widget von dem das Ereignis kommt.
http://effbot.org/tkinterbook/tkinter-e ... ndings.htm
http://effbot.org/tkinterbook/tkinter-e ... ndings.htm