我刚刚发布了我的 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 现在遵循更统一的模式:

  • 通用属性:textcolortext_colorbg_color
  • 可选的 id 用于动态访问
  • 除非显式指定位置,否则自动在 Div 中布局

这种一致性使得构建复杂 UI 更加可预测。

测试与未来设想

此次更新已在以下场景中进行测试:

  • 深度嵌套的布局
  • 自动与手动定位混合使用
  • 多个交互组件(按钮、开关、从回调触发的 toast)

计划中的改进包括:

  • 响应式行为(桌面风格的响应式,而非 CSS)
  • 改进的动画效果
  • 更多组件

安装与文档

  • PyPI:
  • Docs / Quickstart:

结论

如果你对桌面 UI 感兴趣,但更喜欢类似网页的使用体验,欢迎提供你的反馈——无论好坏。库仍处于早期阶段并在不断演进,但这次更新代表了实质性的进步。随时分享你的想法吧!

Back to Blog

相关文章

阅读更多 »

D-Bus是Linux桌面的耻辱

D-Bus 是什么?每个人都听说过 D-Bus,但它到底是什么?D-Bus 的理念相当简单:让应用程序、服务以及其他事物公开方法……