hey all Je suis à la recherche d'un moyen de lier un événement de souris à tous les panneaux. fondamentalement im en utilisant wx.Window.FindFocus() pour trouver quel panneau a l'accent dans mon application de nombreux panneaux. le problème est que je veux lier l'événement wx.LEFT_DOWN à quelque chose pour ensuite mettre wx.Window.FindFocus() dans le gestionnaire d'événements. quoi se lier à tho? self, panel1, panel2 ne fonctionnera évidemment pas car il ne fera qu'appeler l'évènement en cliquant sur ce panneau. J'ai besoin de quelque chose pour attraper les clics dans anypanel afin que je puisse déterminer quel panneau a le focus? l'aide de pls !!!wxpython lier les événements de souris à tous les panneaux?
1
A
Répondre
3
Si un composant wx.Panel a des widgets enfants pouvant accepter le focus, il mettra le focus sur le premier enfant qui peut le prendre. Ce que cela signifie est que wx.Panels ne reçoivent généralement pas attention à moins que vous définissez explicitement ...
Si vous devez prendre des clics sur le panneau, puis lier l'événement wx.EVT_LEFT_DOWN aux panneaux comme celui-ci:
panelOne.Bind (wx.EVT_LEFT_DOWN, self.doSomething)
Je pense que vous pouvez utiliser HitTest pour savoir ce que vous avez cliqué sur, si cela est même nécessaire. Heck, vous pouvez probablement trouver quel groupe il était en faisant quelque chose comme ça dans le gestionnaire d'événements:
panel = event.GetEventObject()
panel_id = panel.GetId()
panel_name = panel.GetName()
Hope that helps!
salut mike .. malheureusement, cela ne marche pas. disons que j'ai panelone, paneltwo, panelthree tout dans mon basepanel principal. si je lie à basepanel et fais comme vous le dites, il ne prend que des clics sur basepanel lui-même. même si panelone est un enfant de basepanel cliquant dessus ne fait rien comme je pense que je devrais lier à panelone, paneltwo, panelthree etc individuellement ... des idées? oh et la liaison à chaque panneau enfant n'est pas une option. J'ai besoin d'avoir accès en quelque sorte au panneau en cliquant dessus – James
Pouvez-vous faire un exemple? http://wiki.wxpython.org/MakingSampleApps –
Eh bien, il a résolu mon problème @MikeDriscoll, alors merci beaucoup :-) –