Textual 是 Python 的 TUI(文本用户界面,Text User Interface)框架,用于创建运行在终端的交互式应用程序。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_wait
methods。他们将 message 发布到 parent widget,但却使得 subclass widgets 出现问题。在几乎所有情况下,用户都可以用self.post_message
(或self.post_message_no_wait
)来进行替换。
完整详细信息可查看 CHANGELOG。