textual:用简洁Python API构建跨平台界面,终端与浏览器均可运行

The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.

分支93Tags223
文件最后提交记录最后更新时间
1 年前
8 个月前
4 个月前
1 年前
3 年前
3 年前
1 年前
1 年前
2 个月前
2 个月前
3 年前
3 年前
3 年前
3 个月前
1 年前
6 个月前
2 个月前
4 年前
2 年前
5 年前
1 年前
10 个月前
3 年前
2 年前
2 年前
7 个月前
3 年前
3 年前
3 年前
10 个月前
2 个月前
5 个月前

Discord 支持的 Python 版本 PyPI 版本 操作系统支持

textual-splash

Textual

clock

使用简洁的 Python API 构建跨平台用户界面。你的应用可在终端 网页浏览器中运行。

Textual 的 API 将现代 Python 与 Web 领域的前沿技术相融合,为你带来轻量高效的应用开发体验。 解耦的组件设计和先进的 测试 框架确保你能长期维护应用。

想要更多示例?请查看 examples 目录。

"""
An App to show the current time.
"""

from datetime import datetime

from textual.app import App, ComposeResult
from textual.widgets import Digits


class ClockApp(App):
    CSS = """
    Screen { align: center middle; }
    Digits { width: auto; }
    """

    def compose(self) -> ComposeResult:
        yield Digits("")

    def on_ready(self) -> None:
        self.update_clock()
        self.set_interval(1, self.update_clock)

    def update_clock(self) -> None:
        clock = datetime.now().time()
        self.query_one(Digits).update(f"{clock:%T}")


if __name__ == "__main__":
    app = ClockApp()
    app.run()

Tip

Textual 底层是一个异步框架。这意味着您可以根据需要将应用程序与异步库集成。 如果您不想或不需要使用异步功能,Textual 也不会强制要求。

组件

Textual 的组件库涵盖了从按钮、树形控件、数据表格、输入框、文本区域到更多其他组件…… 结合灵活的布局系统,您可以实现任何所需的用户界面。

预定义主题确保您的应用程序开箱即美观。

buttons

tree

datatables

inputs

listview

textarea

安装

通过 pip 安装 Textual:

pip install textual textual-dev

详见快速入门

演示

运行以下命令,即可了解 Textual 的部分功能:

python -m textual

或者可以尝试 textual demo,无需安装(需要 uv):

uvx --python 3.12 textual-demo

开发控制台

devtools

如何调试一个本身就运行在终端里的终端应用呢?

textual-dev 包提供了一个开发控制台,可从另一个终端连接到你的应用程序。除了系统消息和事件外,你的日志消息和打印语句也会显示在开发控制台中。

有关 textual-dev 包提供的其他实用工具,请参阅指南

命令面板

Textual 应用程序配有 模糊搜索 命令面板。 按下 ctrl+p 即可打开命令面板。

你可以轻松地通过自定义命令扩展命令面板,以满足应用程序的需求。

Command Palette

Textual ❤️ Web

textual-serve

Textual 应用程序在浏览器中运行时的体验与在终端中一样出色。任何 Textual 应用程序都可以通过 textual serve 命令进行部署 —— 这样你就能在网络上分享自己的作品了。 以下是部署演示应用程序的方法:

textual serve "python -m textual"

除了在本地运行应用外,您还可以借助 Textual Web 来部署应用。

Textual Web 采用突破防火墙限制的技术,能够支持无限数量的应用部署。

由于 Textual 应用对系统配置要求不高,因此只要能运行 Python 的环境,您都可以安装它们。这意味着任何设备都能变身为联网设备,无需依赖桌面环境!

加入我们的 Discord 社区

欢迎通过 Discord 服务器 加入 Textual 开发者与用户社区。

项目介绍

Python的精简应用框架。通过简单的Python API构建高级用户界面。在终端和网页浏览器中运行您的应用程序。【此简介由AI生成】

定制我的领域
18737.16 K1.33 K访问 GitHub