Ich erstelle ein neues Button-Objekt, aber die command
Option bei der Erstellung nicht angegeben. Gibt es einen Weg in Tkinter, um die Befehls (onclick) Funktion zu ändern, nachdem das Objekt erstellt wurde?Befehl ändern Methode für Tkinter Button in Python
Antwort
Obwohl Eli Courtwright's Programm funktioniert fine¹, was Sie wirklich scheinen allerdings zu wollen, ist nur eine Möglichkeit, beliebige Attribute nach der Instanzierung neu zu konfigurieren, die Sie festgelegt haben könnten, wenn Sie instantiated² . Wie Sie dies tun, ist über die configure() -Methode.
¹ "gut", wenn Sie nur die Maus verwenden; Wenn Sie sich für das Tabbing und die Verwendung von [Leertaste] oder [Eingabetaste] für Schaltflächen interessieren, müssen Sie auch die Tastendruckereignisse implementieren (Duplizieren von bereits vorhandenem Code). Das Einstellen der command
Option durch .configure
ist viel einfacher.
² Das einzige Attribut, das nach Instanziierung nicht geändert werden kann, ist name
.
Sicher; Verwenden Sie einfach die Methode bind
, um den Rückruf nach dem Erstellen der Schaltfläche festzulegen. Ich habe gerade das folgende Beispiel geschrieben und getestet. Sie können dies ein schönes Tutorial auf tun bei 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()
- 1. tkinter button Befehle mit Lambda in Python
- 2. Python Tkinter Aufruf Klassenmethoden von Button drücken
- 3. Python Tkinter Befehl Klicken Sie auf
- 4. Intercept Tkinter "Exit" -Befehl?
- 5. Tkinter Button kann den Callback-Befehl nicht finden
- 6. Radiobutton Variable nicht ändern in Python (TKinter)
- 7. Tkinter - Python: Ändern der Hintergrundfarbe
- 8. Lambda Variablenzuweisung (für Tkinter Befehl Rückrufe)
- 9. Python 3.5 tkinter: Widgets in Fenstergröße ändern
- 10. Tkinter button creation
- 11. Ändern Sie die Standardschriftart in Python Tkinter
- 12. tkinter Button Befehl Argument zeigt Fehler: unbekannte Option "-command"
- 13. Tkinter Button Opazität
- 14. Zeichenkreis in Tkinter (Python)
- 15. Python und Tkinter ändern Wörterbuch zu Variablen
- 16. tkinter: wie nach Methode
- 17. Python tkinter Eingabeaufforderung
- 18. Button-Befehl Klasse einen Parameter
- 19. Befehl an Taste zuweisen - Tkinter
- 20. Validieren Befehl funktioniert nicht wie erwartet in Tkinter Eintrag Widget
- 21. Textanimation in Tkinter Python?
- 22. Was ist der Unterschied zwischen Befehl und Bindung in tkinter?
- 23. Python Tkinter Listener in Textfeld
- 24. Python Tkinter Run Checkbuttons
- 25. Verknüpfen eines tKinter Button über Klassen
- 26. Python Tkinter Etikett aktualisieren
- 27. löschen Methode auf Leinwand tkinter
- 28. Python Multithreading mit tkinter
- 29. Python: tkinter AttributeError
- 30. Factory für Callback-Methoden - Python TKinter
Die Befehlskonfigurationsoption wird normalerweise für das Drücken von Tasten verwendet. Die Callback-Funktion benötigt kein Ereignisargument. – tzot
Die Verwendung einer Bindung ist keine besonders gute Lösung IMO. Genau dafür ist die Option -Kommando zuständig. Wenn Sie dies in einer Bindung tun, verlieren Sie außerdem die Möglichkeit, dass der Rückruf per Tastaturüberlauf aufgerufen wird, es sei denn, Sie fügen auch Tastenbindungen hinzu. Es wird ziemlich schnell ziemlich chaotisch, also bleib bei - Befehl. –