用途:在 Textual 终端应用中实现事件处理与组件间通信,覆盖键盘、鼠标和自定义消息。
主要能力:1) 自定义消息:继承 Message,在 init 中定义数据,用 post_message 发布,父组件用 @on(MessageType) 或 on_* 命名约定处理;消息自动向上冒泡,可用 event.stop() 终止传播。2) 键盘事件:on_key(event) 处理按键,支持方向键、enter、escape,以及 ctrl+、shift+、alt+ 组合键。3) 绑定与动作:通过 BINDINGS 将按键映射到 action_* 方法,show=True 时在 Footer 显示,priority=True 用于高优先级绑定。4) 鼠标事件:on_mouse_down、on_mouse_up、on_mouse_move、on_click、on_double_click,可读取坐标与按钮。5) 常见模式:模态对话框结果返回、输入事件的防抖处理。
使用方式:定义 Message 子类后在子组件调用 self.post_message(...),父组件用 @on 装饰器或 on_{widget}{message} 方法接收;绑定写在 BINDINGS 列表,动作实现为 action{name},可为同步或异步。安装与依赖:要求 Python 3.9+、Textual >= 0.45.0,具体安装命令暂未提供。
适用场景:需要键盘导航列表、命令输入控制台、跨组件通知与交互反馈的终端界面。
限制:资料未给出安装命令、收费或许可信息;示例仅覆盖 Textual 的上述事件类型,未涵盖其他框架。绑定匹配时会覆盖 on_key 处理。