如果你用 Python 写过命令行工具,想给非技术用户使用时,Gooey 可能是最简单的解决方案——只需加一个装饰器,原有的 argparse 代码无需改动,即可自动生成美观的图形界面。
项目介绍
Gooey 是一个开源 Python 库,由 Chris Kiehl 开发,GitHub 获得超过 21,000 颗星。它的核心思想是用装饰器(Decorator)模式,将 argparse 的命令行参数声明自动转换为 wxPython 的 GUI 界面。用户无需学习任何 GUI 编程知识,原有的命令行程序加一行 @Gooey 即可拥有完整 GUI。
特色功能
- 零改动集成:只需在原有 argparse 代码上加一个装饰器
- 多语言支持:内置中、英、法、德、日等十几种语言
- 高级/简洁模式:可切换显示高级配置选项
- 实时进度显示:支持显示程序执行进度和时间消耗
- 动态验证:支持对用户输入进行实时验证
- 自定义布局:可自定义界面列数、标签文字等
- 国际化:通过 JSON 文件可轻松添加新语言
安装步骤
# 通过 pip 安装
pip install Gooey
# 或从源码安装
git clone https://github.com/chriskiehl/Gooey.git
cd Gooey
python setup.py install
使用方法
最基础的使用只需在 main 函数上加一个装饰器:
from gooey import Gooey
from argparse import ArgumentParser
@Gooey # 就是这么简单!
def main():
parser = ArgumentParser(description="我的工具")
parser.add_argument('--input', dest='input', help='输入文件')
parser.add_argument('--output', dest='output', help='输出文件')
parser.add_argument('--verbose', action='store_true', help='详细输出')
args = parser.parse_args()
# 你的业务逻辑
print(f"处理 {args.input} -> {args.output}")
if __name__ == "__main__":
main()
进阶配置示例:
@Gooey(
program_name="文件处理器",
language="chinese",
advanced=True,
default_size=(800, 600),
required_cols=2,
optional_cols=2,
auto_start=True
)
def main():
# ... argparse 代码保持不变
pass
适用场景
- 内部工具 GUI 化:将 Python CLI 工具快速转为可分发的桌面应用
- 数据分析脚本:让非技术人员也能使用数据分析脚本
- 运维工具:快速制作带界面的运维小工具
- 教学演示:展示 Python 程序能力时提供更好的用户体验
开源协议
Gooey 采用 MIT 开源许可证,完全免费,可商用。
项目地址:https://github.com/chriskiehl/Gooey
服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









暂无评论内容