声明式 Python UI

用 Python 写界面
像写 HTML 一样简单

PawUI 把类 HTML 的声明式语法带给 Qt。写 .paw 文件、用 Python 处理逻辑,状态一变界面自动刷新——没有构建,没有前端工具链。

Python 3.10+ PySide6 ≥ 6.5 17 个内置组件
app.paw
<Window title="Counter" width="400">
  <Column padding="32" spacing="16">
    <Text size="48" bold>{$count}</Text>
    <Button on_click="inc">+1</Button>
  </Column>
</Window>

<script>
state.count = 0

def inc():
    state.count = state.count + 1
</script>
17
内置组件
0
构建步骤
2
内置主题
3.10+
Python
核心特性

为什么选择 PawUI

把命令式的 Qt 样板代码收敛成声明式语法,让你专注于界面本身。

01

零构建,直接运行

写 .paw 文件直接运行,不需要打包器、编译器或任何前端工具链。

pip install pawui
02

响应式状态

{$count} 绑定状态,赋值即刷新界面,无需手动操作控件。

state.count += 1
03

原生渲染

Qt 抗锯齿、圆角、悬停态、IME 中文输入,全部原生处理。

04

双主题与自定义色

内置 dark / light,通过颜色令牌完全自定义。

05

声明式入场动画

加一个 animate 属性即可淡入、滑入或展开,支持缓动与逐个延时。

animate="slide-up" stagger="60"
06

热重载,状态保留

保存 .paw 文件,窗口自动重建,State 与脚本函数保持不变。

pawui watch app.paw
所见即所得

声明式描述,原生体验

组件树直接映射到 Qt 控件。布局、状态与交互在同一种语法里表达,代码读起来就是界面的样子。

  • 容器嵌套即布局,无需手动管理 geometry
  • 事件处理器就是普通 Python 函数
  • bind 直接完成双向绑定
  • 异步任务不阻塞界面
仪表盘 — 实时渲染
用户1,284
订单342
错误3
搜索项目...
搜索
自动保存已开启
桌面通知已关闭
组件库

开箱即用的 17 个组件

从布局到交互,覆盖常见界面需求。每个组件都支持动画与弹性拉伸。

Window Column Row Scroll Tabs Text Button Input TextArea Checkbox Slider Progress Image Divider Spacer Tooltip Web If For
上手

三步构建第一个应用

安装

一行命令完成,PySide6 依赖自动安装。

pip install pawui

编写 .paw

用类 HTML 语法描述界面,用 Python 处理逻辑与状态。

运行

窗口即开即用,开发时开启热重载。

pawui watch app.paw

开始使用

一行命令,从零到跑

支持 Windows / macOS / Linux,核心依赖极简。

installpip install pawui安装
runpawui app.paw运行
watchpawui watch app.paw热重载
checkpawui check app.paw检查
schemapawui schema组件 Schema
helppawui help [topic]帮助
terminal
$ pip install pawui
Successfully installed pawui-? PySide6-6.5.0

$ pawui app.paw
# 窗口已打开

$ pawui check app.paw
✓ app.paw: syntax OK
  Elements: 1
  Script: yes
现在开始

准备好用 Python 构建界面了吗?

从快速上手开始,几分钟内运行你的第一个 PawUI 应用。