Änderungsbefehl Methode für Tkinter Knopf in Python
-
09-06-2019 - |
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?
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()