2010-09-24 28 views
14

我正在開發一個包含多個窗格的應用程序。見screenshotwxPython中的focus-follow-mouse?

screenshot

  • 設置窗格是一個wx.ScrolledPanel包含了一些wx.Panels
  • 頂部事件面板是wx.grid.Grid
  • 底部數據窗格是wx.Panel其中包含wx.grid.Grid
  • 中間窗格是wx.Panel包含enthought chaco圖。
  • 右側檢測器面板是wx.Panel

我想實現焦點隨鼠標這樣,當我提出我的鼠標的情節,我可以立即放大或縮小使用我的滾輪不首先點擊情節給它的焦點。

同樣,當我移動鼠標左設置,頂部事件或底部數據窗格我希望能夠立即滾動使用滾輪的窗口沒有先單擊窗口上。

目前我定義的函數:

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

我想只在四個頂級窗格應用此功能:情節設置事件數據

但是我需要爲每個頂層窗格中的每個子面板或控件調用此函數以使其工作。例如,我需要將這個功能分別應用於測量設置,分析參數,查看設置等面板。

最有可能EVT_ENTER_WINDOW事件不會傳播到父窗口。

有沒有辦法讓這個工作,而不應用focusFollowsMouse到每個子面板或控制?

謝謝

+4

我喜歡focus-follow-mouse用於我的窗口環境,但讓它發生在使用傳統窗口小部件集的應用程序中意想不到的和反直覺的。 – llasram 2010-09-24 12:04:34

+0

我一般同意,但是在這個應用程序中,用戶通常需要在設置面板和繪圖之間切換。我發現在能夠縮放之前持續點擊該圖有點刺激。 但是請注意,我還沒有做過任何可用性測試。所以可能是我錯了。 – 2010-09-24 14:09:05

+2

這是Windows的行爲 - 它可以像GTK期望的那樣工作。就我個人而言,爲了與其他Windows應用程序保持一致,我會保留原來的應用程序,並安裝WizMouse:http://antibody-software.com/web/software/software/wizmouse-makes-your-mouse-wheel-work在窗口下鼠標/ – 2010-09-24 15:47:13

回答

1

這是Windows的行爲 - 它可以像GTK期望的那樣工作。就我個人而言,爲了與其他Windows應用程序保持一致,我會離開您的應用程序,並且安裝WizMouse