Tkinter bouton bind
C'est mon code:
import Tkinter
from Tkconstants import *
tk = Tkinter.Tk()
class MyApp:
def __init__(self,parent):
self.frame = Tkinter.Frame(tk,relief=RIDGE,borderwidth=2)
self.frame.pack()
self.message = Tkinter.Message(tk,text="Symbol Disolay")
label=Tkinter.Label(self.frame,text="Is Symbol Displayed")
label.pack()
self.button1=Tkinter.Button(self.frame,text="YES")
self.button1.pack(side=BOTTOM)
self.button1.bind("<Button-1>", self.button1Click)
self.button2=Tkinter.Button(self.frame,text="NO")
self.button2.pack()
self.button2.bind("<Button-1>", self.button2Click)
def button1Click(self, event):
"pressed yes"
def button2Click(self, event):
"pressed no"
myapp = MyApp(tk)
tk.mainloop()
Ce que je vais faire dans button1Click() et button2Click() de sorte qu'ils reviennent "OUI" ou "NON" à mon programme dans un format de chaîne?
- Pouvez-vous être plus précis sur ce que tu veux dire par " retour "OUI" ou "NON"? Les évènements n'ont pas de "retour", puisqu'elles sont appelées à partir de la boucle d'événements. Voulez-vous un widget d'être mis à jour, de retourner quelque chose sur la sortie standard (stdout), définir une variable, ou ...?
InformationsquelleAutor user46646 | 2009-07-20
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas le "retour" d'une chaîne, car les rappels sont appelées à partir de l'événement de la boucle et la boucle d'événements ignore toutes les valeurs retournées par les rappels comme il n'a pas eu connaissance de quoi faire avec les valeurs renvoyées.
Si vous voulez "OUI" ou "NON" pour être appliqué à soi-même.message widget, vous pouvez changer vos rappels à ressembler à ceci:
Vous aurez alors besoin de rendre le message widget visible. Par exemple, ajouter "de soi.message.pack()" dans votre code quelque part.
Si vous avez besoin d'une réponse précise à votre question, vous aurez besoin de faire un meilleur travail de description de ce que vous entendez par "retour" -- voulez-vous voir le texte dans un label, apparaissent dans une fenêtre de dialogue, etc.
simplement
return "pressed yes"
retournera la chaîne de la TKinter, gestionnaire, qui vais l'ignorer.Que vous avez à faire quelque chose dans votre cliquez sur defs, par exemple mettre à jour le texte de l'étiquette