2017-10-08 5 views
0

Pourquoi tkinter.Frame en python ne fonctionne pas avec someframe.bind("<Motion>", somefunc)? Dans ce cas, somefunc n'est pas exécuté. Quelqu'un pourrait-il me l'expliquer?tkinter Le cadre ne détecte pas <Motion> événement

code: self.frame.bind("<Motion>", tippy.update)

Si je lie cela par exemple tkinter.Label, tout fonctionne comme prévu. Le code est exécuté.

EDIT: Je pensais que si je tkinter.Label dans tkinter.Frame et si je passez la souris sur la tkinter.Label, il va s'exécuter parce que son dans le tkinter.Frame. Cependant tkinter.Frame ne détecte le mouvement que s'il n'y a pas d'autre widget dans l'endroit. Fondamentalement, je pensais que l'espace tkinter.Frame n'est pas écrasé avec tkinter.Label.

+1

Nous aurons besoin de plus d'informations pour pouvoir répondre à la question. Veuillez modifier votre message pour inclure le code qui ne fonctionne pas comme prévu. –

+0

Avez-vous veillé à ce que votre cadre ait le focus. – SolarFactories

+0

Cela ne devrait pas affecter cela. –

Répondre

0

Le code ci-dessous montre que l'événement <Motion> fonctionne avec un widget Frame dans tkinter:

from tkinter import * 

root = Tk() 

def callback(*args): 
    print("Motion detected") 

frame = Frame(root, width=100, height=100) 

frame.bind("<Motion>", callback) 

frame.pack() 

root.mainloop() 

Si vous pouvez fournir un MCVE nous pouvons essayer de vous aider à travers tout problème que vous rencontrez.