我刚刚发布了我的 Python GUI 库(PyUIkit)的重大更新
发布: (2025年12月13日 GMT+8 14:49)
3 min read
原文: Dev.to
Source: Dev.to
概述
在 Python 中构建桌面 GUI 时,常常会感到要么层次太低,要么限制太多。
PyUIkit 是一个现代的、基于组件的 GUI 库,受网页布局启发,构建于 customtkinter 之上。它提供:
- 组件(Button、Switch、Toast 等)
- 布局容器(
Div) - 自动堆叠(无需始终指定
x/y) - 简单、可读的 API
最新版本加入了大量新功能并对 API 进行了优化。
新的 Toast 组件
一种轻量级、非模态的反馈元素,具备以下能力:
- 滑入与滑出动画
- 可配置时长的自动消失
- 手动关闭按钮
- 多种位置(右上、左下等)
- 自定义颜色、尺寸和文字
Toast(
text="Build succeeded!",
bg_color="#4caf50",
duration=3
).show()
没有模态行为,不会阻塞——就像网页通知一样即时反馈。
新的 Switch 组件
一种基于切换的组件,适用于设置、偏好和功能标记。
关键特性
- 明确的 ON / OFF 状态处理
- 可选的默认状态
- 完全兼容自动堆叠布局
- 通过唯一的
id实现全局访问
Switch(
id="darkMode",
text="Enable Dark Mode",
default=True
)
在应用的任意位置获取开关状态:
state = Switch.get_state(id="darkMode") # 1 = ON, 0 = OFF
API 一致性
所有组件的 API 现在遵循更统一的模式:
- 通用属性:
text、color、text_color、bg_color - 可选的
id用于动态访问 - 除非显式指定位置,否则自动在
Div中布局
这种一致性使得构建复杂 UI 更加可预测。
测试与未来设想
此次更新已在以下场景中进行测试:
- 深度嵌套的布局
- 自动与手动定位混合使用
- 多个交互组件(按钮、开关、从回调触发的 toast)
计划中的改进包括:
- 响应式行为(桌面风格的响应式,而非 CSS)
- 改进的动画效果
- 更多组件
安装与文档
- PyPI:
- Docs / Quickstart:
结论
如果你对桌面 UI 感兴趣,但更喜欢类似网页的使用体验,欢迎提供你的反馈——无论好坏。库仍处于早期阶段并在不断演进,但这次更新代表了实质性的进步。随时分享你的想法吧!