2010-09-24 33 views
14

Tôi đang phát triển một ứng dụng có chứa một số ngăn. Xem screenshot:Lấy nét sau chuột trong wxPython?

screenshot

  • Các trái thiết lập cửa sổ là một wx.ScrolledPanel có chứa một số wx.Panels.
  • Đầu trang sự kiện ngăn là wx.grid.Grid.
  • Phần dưới cùng dữ liệuwx.Panel có chứa wx.grid.Grid.
  • Giữa ngăn cách wx.Panel chứa ô enthought chaco.
  • Màn hình chính xác detectorwx.Panel.

Tôi muốn thực hiện tập trung sau chuột để khi tôi di chuyển chuột của tôi trên cốt truyện tôi ngay lập tức có thể phóng to hoặc thu sử dụng bánh xe di chuyển của tôi mà không click đầu tiên trên mảnh đất để cho nó tập trung.

Tương tự như vậy khi tôi di chuyển chuột của tôi trên trái thiết lập, đầu sự kiện hoặc đáy dữ liệu panes Tôi muốn để có thể ngay lập tức di chuyển cửa sổ bằng cách sử dụng bánh xe di chuyển mà không cần nhấp đầu tiên trên cửa sổ .

Hiện nay tôi định nghĩa một hàm:

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

Tôi muốn áp dụng chức năng này chỉ có trên bốn panes top-level: cốt truyện, thiết lập, sự kiệndữ liệu.

Tuy nhiên, tôi cần phải gọi chức năng này cho từng bảng điều khiển hoặc kiểm soát trong từng ngăn trên cùng để làm việc này. Ví dụ: tôi cần phải áp dụng chức năng này riêng lẻ cho Cài đặt đo lường, Tham số phân tích, Xem cài đặt v.v.

Rất có thể sự kiện EVT_ENTER_WINDOW không được truyền sang cửa sổ chính.

Có cách nào để làm việc này mà không cần áp dụng focusFollowsMouse cho mỗi và mọi bảng điều khiển hoặc kiểm soát không?

Cảm ơn

+4

Tôi thích con trỏ chuột tập trung cho môi trường cửa sổ của mình, nhưng nó xảy ra trong ứng dụng bằng cách sử dụng bộ tiện ích truyền thống bất ngờ và phản trực giác. – llasram

+0

Tôi đồng ý nói chung, tuy nhiên trong ứng dụng này người dùng thường cần phải chuyển đổi giữa bảng cài đặt và âm mưu. Tôi thấy hơi khó chịu khi liên tục nhấp vào ô trước khi có thể phóng to. Tuy nhiên, lưu ý rằng tôi chưa thực hiện bất kỳ thử nghiệm khả năng sử dụng nào. Vì vậy, nó chỉ có thể là trường hợp mà tôi là nhầm lẫn. –

+2

Đây là hành vi của Windows - nó hoạt động như bạn mong đợi dưới GTK. Cá nhân, tôi sẽ rời khỏi ứng dụng của bạn vì nó là sự nhất quán với các ứng dụng Windows khác và cài đặt WizMouse: http://antibody-software.com/web/software/software/wizmouse-makes-your-mouse-wheel-work -on-the-window-under-the-mouse/ –

Trả lời

1

Đây là hành vi của Windows - nó hoạt động như bạn mong đợi dưới GTK.Cá nhân, tôi sẽ rời khỏi ứng dụng của bạn vì nó phù hợp với các ứng dụng Windows khác và cài đặt WizMouse

Các vấn đề liên quan