Tkinter: invoquer l'événement dans la boucle principale
Comment vous appelez une tkinter event
à partir d'un autre objet?
Je suis à la recherche de quelque chose comme wxWidgets wx.CallAfter
. Par exemple, Si je crée un objet, et de passer mon Tk
racine de l'instance, et puis essayer d'appeler une méthode de la fenêtre racine de mon objet, mon application se bloque.
Le mieux que je puisse vous arriver, c'est d'utiliser le after
méthode et de vérifier l'état de mon objet distinct, mais qui semble un gaspillage.
OriginalL'auteur Mark | 2008-11-06
Vous devez vous connecter pour publier un commentaire.
Pour répondre à votre question "Comment vous appelez une TkInter événement à partir d'un objet distinct", utilisez la
event_generate
de commande. Il vous permet d'injecter des événements dans la file d'attente des événements de la fenêtre racine. Combiné avec les Savoirs traditionnels, le puissant événement virtuel mécanisme, il devient une pratique de la transmission de message mécanisme.Par exemple:
Noter que le
event_generate
appel retourne immédiatement. Il n'est pas clair si c'est ce que vous voulez ou pas. En général, vous ne voulez pas un événement à partir programme pour bloquer en attente d'une réponse à un événement particulier, car il va gel de l'interface graphique.Je ne suis pas sûr si cela résout votre problème de bien; sans voir ton code je ne suis pas sûr de ce que votre véritable problème. Je peux, par exemple, les méthodes d'accès de la racine dans le constructeur d'un objet où la racine est transmis sans l'application de verrouillage vers le haut. Cela me dit il y a quelque chose d'autre se passe dans votre code.
Voici un exemple de réussi à accéder à des méthodes sur une fenêtre de la racine à partir d'un autre objet:
OriginalL'auteur Bryan Oakley
Voici ci-dessous juste un peu de doc et un lien pour mieux comprendre Bryan réponse ci-dessus.
description de la fonction de New Mexico Tech :
w.event_generate(sequence, **kw)
liste et la description de tcl/tk attributs d'événement ici
OriginalL'auteur user110954