2017-02-10 3 views
0

Win7 SP1, Python 2.7, Tkinter.Obtenir le nom du widget de l'étiquette dans le cadre en utilisant la souris

Je fais un cadre, et je place une rangée d'étiquettes à l'intérieur. Le tableau est 10w x 24h.

Je veux cliquer sur l'une de ces étiquettes et retourner le nom de l'étiquette afin que je puisse modifier sa variable.

Je sais comment faire en utilisant une liste, mais comment faire en utilisant simplement 'marquer dans un cadre'?

Merci, Mark.

Répondre

0

Vous n'avez pas besoin du nom de l'étiquette et les étiquettes n'ont pas de noms utiles. Lorsque l'événement se déclenche, vous recevez une référence au widget, que vous pouvez utiliser pour interroger ou modifier les attributs du widget.

Voici un exemple de modification d'une étiquette en cliquant dessus. Exécutez le programme, puis cliquez sur n'importe quelle étiquette aussi souvent que vous le souhaitez.

import Tkinter as tk 
import time 

def on_click(event): 
    now = time.strftime("%H:%M:%S") 
    event.widget.configure(text="you clicked me at %s" % now) 

root = tk.Tk() 
for row in range(4): 
    for col in range(4): 
     label = tk.Label(root, width=25, borderwidth=1, relief="sunken") 
     label.grid(row=row, column=col, padx=2, pady=2) 
     label.bind("<1>", on_click) 

root.mainloop()