Vra

Ek skep 'n nuwe Button voorwerp, maar het die opsie command op die skepping nie spesifiseer. Is daar 'n manier in Tkinter om die funksie opdrag (onclick) verander na die voorwerp is geskep?

Was dit nuttig?

Oplossing

Hoewel Eli Courtwright se program sal werk fine¹ , wat jy regtig lyk wil al is net 'n manier om weer instel na Instantiëring enige kenmerk wat jy kon stel wanneer jy instantiated². Hoe jy dit doen is deur middel van die metode instel ().

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()

¹ "fine" as jy net die muis gebruik; as jy omgee vir tabbing en die gebruik van [Space] of [Enter] op knoppies, dan sal jy het om te implementeer (duplisering bestaande kode) sleuteldruk gebeure te. die opsie command deur .configure opstel is baie makliker.

² die enigste kenmerk wat nie kan verander na Instantiëring is name.

Ander wenke

Seker; net gebruik die bind metode om die callback spesifiseer na die knoppie is geskep. Ek het net geskryf en getoets die voorbeeld hieronder. Jy kan 'n lekker handleiding vind op om dit te doen by 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()
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top