我正在开发一个应用程序,其中包含许多面板,请参见截图:
但是,我需要为每个顶级面板中的每个子面板或控件调用此函数才能使其起作用。例如,我需要分别将此函数应用于Measurement Settings、Analysis Parameters、View Settings等面板。
很可能
是否有一种方法可以在不对每个子面板或控件应用
谢谢
- 左侧的设置窗格是一个包含多个
wx.Panel
的wx.ScrolledPanel
。 - 顶部的事件窗格是一个
wx.grid.Grid
。 - 底部的数据窗格是一个包含
wx.grid.Grid
的wx.Panel
。 - 中间的绘图窗格是一个包含enthought chaco绘图的
wx.Panel
。 - 右侧的检测器窗格是一个
wx.Panel
。
我想要实现鼠标跟随焦点,这样当我将鼠标移动到绘图上时,我可以立即使用滚轮缩放而不必先单击绘图以给它焦点。
同样,当我将鼠标移动到左侧的设置、顶部的事件或底部的数据窗格上时,我想要能够立即使用滚轮滚动窗口,而不必先单击窗口。
目前我定义了一个函数:
def focusFollowsMouse(window):
window.Bind(wx.EVT_ENTER_WINDOW, lambda event: window.SetFocus())
我想仅在四个顶层面板上应用此函数:plot、settings、events和data。但是,我需要为每个顶级面板中的每个子面板或控件调用此函数才能使其起作用。例如,我需要分别将此函数应用于Measurement Settings、Analysis Parameters、View Settings等面板。
很可能
EVT_ENTER_WINDOW
事件不会传播到父窗口。是否有一种方法可以在不对每个子面板或控件应用
focusFollowsMouse
的情况下使其生效?谢谢