Фокус следует за мышью в wxPython?

Я разрабатываю приложение, которое содержит несколько панелей. УвидетьСкриншот:

Левыйнастройки панель являетсяwx.ScrolledPanel который содержит рядwx.Panels.ВершинаСобытия панель являетсяwx.grid.Grid.Дноданные панель являетсяwx.Panel который содержитwx.grid.Grid.Серединасюжет панель являетсяwx.Panel содержащийувлеченный чако сюжет.Праводетектор панель являетсяwx.Panel.

Я хотел бы реализоватьфокус следует за мышью так что, когда я перемещаю мышь по графику, я могу сразу увеличивать или уменьшать масштаб с помощью колеса прокрутки, не нажимая сначала на график, чтобы придать ему фокус.

Точно так же, когда я перемещаю мышь над левойнастройки , вершинаСобытия или дноданные Панели Я хотел бы иметь возможность сразу прокручивать окно, используя колесо прокрутки, не нажимая сначала на окно.

В настоящее время я определил функцию:

def focusFollowsMouse(window):
    window.Bind(wx.EVT_ENTER_WINDOW, lambda event: window.SetFocus())

Я хотел бы применить эту функцию только на четырех панелях верхнего уровня:сюжет, настройки, События а такжеданные.

Однако мне нужно вызвать эту функцию для каждой вложенной панели или элемента управления в каждой из панелей верхнего уровня, чтобы заставить это работать. Например, мне нужно применить эту функцию индивидуально кНастройки измерения, Параметры анализа, Просмотр настроек и т.д. панели.

Скорее всегоEVT_ENTER_WINDOW Событие не распространяется на родительские окна.

Есть ли способ заставить это работать без примененияfocusFollowsMouse к каждой подгруппе или элементу управления?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос