Estoy desarrollando una aplicación que contiene varios paneles. Ver la screenshot:Focus-follows-mouse en wxPython?
- La configuración panel izquierdo es un
wx.ScrolledPanel
que contiene una serie dewx.Panels
. - El panel superior de eventos es un
wx.grid.Grid
. - La parte inferior panel de datos es un
wx.Panel
que contiene unwx.grid.Grid
. - El medio parcela panel es un
wx.Panel
que contiene un diagrama de enthought chaco. - La derecha detector panel es un
wx.Panel
.
me gustaría poner en práctica foco sigue al ratón para que cuando muevo el ratón sobre la trama puedo enfocar inmediatamente adentro o hacia afuera usando mi rueda de desplazamiento sin primero clic en la trama para darle el foco.
Del mismo modo, cuando muevo el ratón sobre los configuración izquierda, los principales eventos o los datos de abajo paneles Me gustaría ser capaz de desplazarse de inmediato la ventana utilizando la rueda de desplazamiento sin primero clic en la ventana .
Actualmente he definido una función:
def focusFollowsMouse(window):
window.Bind(wx.EVT_ENTER_WINDOW, lambda event: window.SetFocus())
quisiera aplicar esta función sólo en los cuatro paneles de nivel superior: trama, configuración, eventos y de datos.
Sin embargo, necesito llamar a esta función para cada subpanel o control en cada uno de los paneles de nivel superior para que esto funcione. Por ejemplo, necesito aplicar esta función individualmente a Configuración de medición, Parámetros de análisis, Ver configuraciones etc. paneles.
Lo más probable es que el evento EVT_ENTER_WINDOW
no se propague a las ventanas primarias.
¿Hay alguna manera de hacer que esto funcione sin aplicar focusFollowsMouse
a todos y cada subpanel o control?
Gracias
Me gusta el enfoque-sigue-mouse para mi entorno de ventanas, pero que suceda dentro de una aplicación usando un conjunto de artilugios tradicional parece inesperado y contra-intuitivo. – llasram
Estoy de acuerdo en general, sin embargo, en esta aplicación un usuario a menudo necesita cambiar entre el panel de configuraciones y el gráfico. Me resulta un poco irritante hacer clic continuamente en la trama antes de poder hacer zoom. Sin embargo, tenga en cuenta que aún no he realizado ninguna prueba de usabilidad. Entonces puede ser el caso de que estoy equivocado. –
Este es el comportamiento de Windows: funciona como espera bajo GTK. Personalmente, dejo tu aplicación tal como está, para mantener la coherencia con otras aplicaciones de Windows e instalo WizMouse: http://antibody-software.com/web/software/software/wizmouse-makes-your-mouse-wheel-work -on-the-window-under-the-mouse/ –