直接跳到内容
本页目录

Textual 终端UI组件

PnTextual 组件允许在 Panel 应用程序中渲染 Textual 应用程序。它通过补丁方式实现了一个自定义 Panel 驱动程序,并将应用程序渲染到 Terminal 组件中,完全支持鼠标和键盘事件。

底层实现为panel.pane.Textual,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/Textual.html

基本用法

需要注意以下几点:

  • 一旦 App 实例被绑定到 PnTextual 组件,它就不能在另一个组件中重用,并且每个 App 实例只能绑定到单个会话。
  • 应用程序必须在与它将运行的服务器相同的线程上实例化,例如,如果您使用 pn.serve(..., threaded=True) 提供应用程序,则必须在函数内部实例化 App

PnTextual 组件可以直接接收 Textual App,Panel 将处理其余部分,即启动应用程序、处理输入、重新渲染等。换句话说,应用程序将像在常规终端中运行一样工作。

让我们从一个非常简单的例子开始:

这对于简单的应用程序和更复杂的应用程序都适用。作为示例,这里我们嵌入了 Textual 文档中的计算器示例应用程序:

API

属性

属性名说明类型默认值
object要渲染的 Textual 应用程序textual.app.App None
sizing_mode尺寸调整模式str 'fixed'
width宽度int, str None
height高度int, str None
min_width最小宽度int None
min_height最小高度int None
max_width最大宽度int None
max_height最大高度int None
margin外边距int, tuple 5
css_classesCSS类名列表list []

Slots

插槽名说明
default自定义默认内容

Controls

src/examples/panel_vuepy/panes/Textual

Textual 终端UI组件已经加载完毕