Textual 是 Python 的 TUI(文本用户界面,Text User Interface)框架,用于创建运行在终端的交互式应用程序。Textual 0.11.0 现已发布,此版本主要是增强了 Markdown 支持。示例屏幕截图:

Textual 0.11.0发布,增强的Markdown支持

  添加了两个新的小部件:用于简单 Markdown 文档的 Markdown,和添加类似浏览器的导航和目录的 MarkdownViewer。

  Textual 原本就提供了通过嵌入 Rich Markdown 对象来支持 Markdown 的功能,目前仍然好使。除了 working links 之外,这个新的小部件还添加了动态控件,例如可滚动的代码栅栏和表格。

  在未来的版本中,Textual 计划添加更多 Markdown 扩展,以及在文档中轻松嵌入自定义小部件的能力。“我确信有很多有趣的应用程序可以由动态生成的 Markdown 文档提供支持。”

  DataTable 改进

  在 DataTable API 方面进行了大量工作。添加了对数据进行排序的功能,这需要引入行键和列键的概念。用户现在可以通过坐标或行 / 列键来引用行 / 列 / 单元格。

  此外,还有新的 update_cell 和 update_cell_at 方法可在填充数据后更新单元格。

  Tree control

  Tree 小部件增加了一些方法来以编程方式展开、折叠和切换 tree nodes。

  Breaking changes

  此版本中有一些破坏性变更,主要与命名和导入相关。例如:

  Checkbox 已重命名为 Switch。这是因为开发团队计划在未来的版本中引入免费的 Checkbox 和 RadioButton 小部件,“但我们太喜欢 Switch 的外观了,所以没有放弃它们”。 已经放弃了 emit 和 emit_no_waitmethods。他们将 message 发布到 parent widget,但却使得 subclass widgets 出现问题。在几乎所有情况下,用户都可以用self.post_message(或 self.post_message_no_wait) 来进行替换。