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 元素。