Frage

Ich schaffe einen neuen Button-Objekt aber nicht angeben, die command Option bei der Erstellung. Gibt es eine Möglichkeit in Tkinter den Befehl (Onclick) Funktion zu ändern, nachdem das Objekt erstellt wurde?

War es hilfreich?

Lösung

Obwohl Eli Courtwright des Programm funktioniert fine¹ obwohl scheinen zu wollen, ist, was Sie wirklich nur eine Möglichkeit, nach der Instanzierung zu rekonfigurieren alle Attribute, die Sie festgelegt haben könnten, wenn Sie instantiated². Wie Sie tun, ist so durch die configure () -Methode.

from Tkinter import Tk, Button

def goodbye_world():
    print "Goodbye World!\nWait, I changed my mind!"
    button.configure(text = "Hello World!", command=hello_world)

def hello_world():
    print "Hello World!\nWait, I changed my mind!"
    button.configure(text = "Goodbye World!", command=goodbye_world)

root = Tk()
button = Button(root, text="Hello World!", command=hello_world)
button.pack()

root.mainloop()

¹ „fein“, wenn Sie die Maus verwenden; wenn Sie über Tabbing und mit [Leer] Pflege oder [Enter] auf Tasten, dann werden Sie implementieren (Duplizieren vorhandenen Code) zu keypress Ereignisse. Einstellen der command Option durch .configure ist viel einfacher.

² das einzige Attribut, das nicht nach der Instanzierung ändern kann, ist name.

Andere Tipps

Sicher; benutzen Sie einfach die bind Methode den Rückruf angeben, nachdem die Schaltfläche erstellt wurde. Ich habe gerade geschrieben und das folgende Beispiel getestet. Sie können dies ein schönes Tutorial auf dem Tun unter http: // www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm

from Tkinter import Tk, Button

root = Tk()
button = Button(root, text="Click Me!")
button.pack()

def callback(event):
    print "Hello World!"

button.bind("<Button-1>", callback)
root.mainloop()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top