Je développe une application qui contient un certain nombre de volets. Voir la screenshot:Focus-suit-souris dans wxPython?
- La gauche paramètres volet est un
wx.ScrolledPanel
qui contient un certain nombre dewx.Panels
. - Le premier événements est un
wx.grid.Grid
. - Le volet de données est un
wx.Panel
qui contient unwx.grid.Grid
. - Le volet du graphique est un
wx.Panel
contenant un graphique enthought chaco. - Le volet droit du détecteur est un
wx.Panel
.
Je voudrais mettre en œuvre focus suit la souris de sorte que lorsque je déplace ma souris sur la parcelle que je peux immédiatement un zoom avant ou à l'aide de ma molette de défilement sans d'abord en cliquant sur le terrain pour lui donner le focus.
De même quand je déplace ma souris sur les paramètres gauche, les événements majeurs ou les bas données volets Je voudrais pouvoir faire défiler immédiatement la fenêtre en utilisant la molette de défilement sans d'abord cliquer sur la fenêtre .
Actuellement je défini une fonction:
def focusFollowsMouse(window):
window.Bind(wx.EVT_ENTER_WINDOW, lambda event: window.SetFocus())
Je voudrais appliquer cette fonction que sur les quatre volets de haut niveau: terrain, paramètres, événements et données.
Cependant, j'ai besoin d'appeler cette fonction pour chaque sous-panneau ou contrôle dans chacun des volets de haut niveau pour que cela fonctionne. Par exemple, j'ai besoin d'appliquer cette fonction individuellement à la Paramètres de mesure, Paramètres d'analyse, Voir les paramètres etc.
Il est très probable que l'événement EVT_ENTER_WINDOW
ne soit pas propagé aux fenêtres parentes.
Existe-t-il un moyen de faire fonctionner ceci sans appliquer focusFollowsMouse
à chaque sous-panneau ou contrôle?
Merci
J'aime focus-follows-mouse pour mon environnement de fenêtrage, mais le faire dans une application en utilisant un ensemble de widgets traditionnels semble inattendu et contre-intuitif. – llasram
Je suis d'accord en général, mais dans cette application, un utilisateur a souvent besoin de basculer entre le panneau de paramètres et l'intrigue. Je trouve ça légèrement irritant de cliquer en continu sur l'intrigue avant de pouvoir zoomer. Notez cependant que je n'ai encore effectué aucun test d'utilisabilité. Donc, ça peut juste être le cas que je me trompe. –
Ceci est le comportement de Windows - il fonctionne comme prévu sous GTK. Personnellement, je laisserais votre application telle quelle, par souci de cohérence avec les autres applications Windows, et j'installerai WizMouse: http://antibody-software.com/web/software/software/wizmouse-makes-your-mouse-wheel-work -on-the-window-under-the-mouse/ –