#header-mark#
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_classes | CSS类名列表 | list | [] |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
Controls
src/examples/panel_vuepy/panes/Textual