fantas.event_handler¶
- class fantas.event_handler.EventHandler(window: Window)¶
事件处理器,负责预处理并分发事件。
提示
事件处理器由
Window类自动创建,通常只需要使用add_event_listener()和remove_event_listener()方法。- window: Window¶
关联的窗口对象
- active_ui: UI¶
当前激活的 UI 元素
- hover_ui: UI¶
当前鼠标悬停的 UI 元素
- last_hover_ui: UI¶
上一次鼠标悬停的 UI 元素
- last_pressed_ui: UI | None¶
上一次按下的 UI 元素
- listener_dict: dict[tuple[int, int, bool], list[Callable[[Event], bool | None]]]¶
事件监听注册表
- handle_event(event: Event, focused_ui: UI | None = None) None¶
处理单个事件。
- 参数:
event (fantas.Event) -- 要处理的事件对象。
focused_ui (fantas.UI | None) -- 事件传递的焦点 UI 元素,为 None 会自动确认焦点。
- add_event_listener(event_type: int, ui: UI, use_capture: bool, listener: Callable[[Event], bool | None]) None¶
为指定事件类型和 UI 元素添加事件监听器。
- 参数:
event_type (fantas.EventType) -- 要监听的事件类型。
ui (fantas.UI) -- 要关联的 UI 元素。
use_capture (bool) -- 是否在捕获阶段调用回调函数。
listener (fantas.ListenerFunc) -- 要添加的事件监听函数。
- remove_event_listener(event_type: int, ui: UI, use_capture: bool, listener: Callable[[Event], bool | None]) None¶
移除指定事件类型和 UI 元素的事件监听器。
- 参数:
event_type (fantas.EventType) -- 要移除监听器的事件类型。
ui (fantas.UI) -- 要移除监听器的 UI 元素。
use_capture (bool) -- 是否在捕获阶段调用回调函数。
listener (fantas.ListenerFunc) -- 要移除的事件监听函数。
- set_hover_ui(ui: UI) None¶
set_hover_ui 的 Docstring 设置当前悬停的 UI 元素。
- 参数:
ui (fantas.UI) -- 要设置为悬停的 UI 元素。
- set_active_ui(ui: UI) None¶
设置当前激活的 UI 元素。
- 参数:
ui (fantas.UI) -- 要设置为激活的 UI 元素。