我为桌面构建了 Wordle,但使用了自己的 GUI 库!
Source: Dev.to

在 Python 中开发桌面 GUI 时,常常需要使用低层次或受限的框架。为了解决这个问题,我创建了 PyUIKit,一个基于 CustomTkinter 的开源、组件化 Python GUI 库。它的目标是提供 类似网页、简洁的语法,高效构建 GUI。我正在积极更新 PyUIKit;虽然它尚未打磨得很完美,但已经可以使用。
为了测试该库,我实现了一个 桌面版 Wordle 克隆,这帮助我发现了当前的局限性以及需要改进的地方。
概览
桌面版 Wordle 应用包括:
- 六次机会猜测一个五字母单词
- 从 450+ 单词的列表中随机选取单词
- 使用颜色标记的格子反馈:绿色 ✅、黄色 ⚠️、灰色 ❌
- Toast 通知用于用户反馈

PyUIKit GUI 示例
使用 PyUIKit 时,UI 组件以 嵌套、类网页的结构 组合:
from pyuikit import Body, Div, Input
from pyuikit.components import Text, Button
app = Body(resizable=(False, False), height=600, width=800, title='Wordle')
Div(
height=600,
width=800,
bg_color='#121213',
children=[
Text(text="WORDLE", font_size=30, color="white"),
Div(horizontal=True, nested=True, children=[
Input(id='row1_col1', width=50, height=50, multiline=True),
Button(text="Submit", on_click=lambda: handlesubmit(1))
])
]
)
app.run()
处理 Wordle 逻辑
def handlesubmit(rownum):
letters = [Input.get_input_text(f'row{rownum}_col{i+1}') for i in range(5)]
# Two‑pass check: green first, then yellow/gray
# Toast feedback if correct or attempt used
发现的局限性
- 单行
Input组件无法自定义高度 - 字体定制受限
- 动态背景颜色更新尚未完全支持
PyUIKit 的未来改进
- 更简洁、易用的更新函数
- 更好的
Div布局,以实现灵活的 UI 组合 - 改进输入处理、样式和响应性
结论
这个 Wordle 项目作为一次实用的压力测试,帮助我们识别了 PyUIKit 当前的局限,并指引了其演进方向。虽然 PyUIKit 仍未能与更成熟的 GUI 框架竞争,但它正处于积极开发中,此类项目在发现缺陷、完善 API、塑造未来改进方面发挥着关键作用。
如果你喜欢这个项目,请考虑在 GitHub 仓库给它点个星。
PyUIKit 链接
- PyPI:
- Docs & Quickstart:
- GitHub Repo: