SuperAPI AI 工具集

textual

编程与开发

查看项目

更新于 10-15 15:19

技能介绍

用途

Textual 是一个终端用户界面(TUI)框架,用于在终端中构建交互式应用。当需要创建新的 Textual 应用、添加屏幕(Screen)与组件(Widget)、使用 TCSS 进行样式设计时,可使用本技能。

主要能力

  • 采用受 Web 启发的架构:App → Screen → Widget。
  • 支持组件生命周期管理:__init__() → compose() → on_mount() → on_show()/on_hide() → on_unmount()。
  • 响应式属性:使用 reactive 与 var,并支持 watch_* 与 validate_* 方法。
  • 事件与消息机制:可自定义 Message、使用 post_message()、按 on_<widget>_<message> 命名处理函数,或用 @on 装饰器配合 CSS 选择器过滤。
  • 数据流约定:属性向下(父级直接设置子组件属性),消息向上(子组件通过 post_message() 向父级发送消息)。
  • 屏幕管理:可定义 Screen 子类并通过 push_screen/pop_screen 导航。
  • 自定义组件:支持简单组件、复合组件与可聚焦组件。
  • 布局模式:Horizontal、Vertical、Grid、VerticalScroll 等容器,Grid CSS、停靠(dock)等。
  • 异步 Worker:使用 @work 装饰器,支持 exclusive=True(取消前一个任务)与 thread=True(用于同步 API)。
  • 测试支持:通过 app.run_test() 与 Pilot 进行按键、点击、暂停等操作模拟。

使用方式

通过继承 App 类创建应用,定义 compose() 方法产出组件,并用 MyApp().run() 启动。样式可用 CSS_PATH 指定 TCSS 文件或 DEFAULT_CSS 内联。常用操作包括:查询组件(query_one、query)、CSS 类操作(add_class、toggle_class、set_class)、可见性(display)、挂载/移除(mount、remove)、定时器(set_interval、set_timer)以及退出(exit)。

适用场景

适合需要在终端内构建界面化工具的 Python 开发者,例如命令行交互应用、仪表盘、监控面板等。

限制

资料中未提供该技能的具体收费、价格、平台支持范围或效果保证等信息,暂未提供。更多组件目录、CSS 属性与完整示例可参阅官方文档:https://textual.textualize.io/