Gooey 是一个让人眼前一亮的 Python 工具,只要一个装饰器就能把绝大多数 Python 3 命令行脚本变成带界面的桌面程序,再也不用对着黑框敲参数了。

快速入门:安装与基本用法
Gooey 是一个 Python 库,安装最简单的方式就是使用 pip:
pip install Gooey
你也可以从 GitHub 克隆仓库到本地,然后运行 setup.py 安装:
git clone https://github.com/chriskiehl/Gooey.git
cd Gooey
python setup.py install
使用 Gooey 只需要在程序的入口函数上加一个简单的装饰器 @Gooey:
from gooey import Gooey
@Gooey
def main():
parser = ArgumentParser(...)
# ... 你的程序代码 ...
只需这样,Gooey 就能自动解析 ArgumentParser 中定义的参数,生成对应的图形界面。

强大的配置选项,满足个性化需求
Gooey 提供了丰富的配置选项,你可以通过在装饰器中传入参数来定制 GUI 的外观和行为:
advanced:控制是否显示高级配置界面。
language:设置 GUI 的语言,支持多种语言。
auto_start:跳过配置界面,直接运行程序。
program_name:设置程序名称,显示在窗口标题栏。
program_description:设置程序描述,显示在配置界面顶部。
default_size:设置窗口初始大小。
required_cols / optional_cols:设置“必填参数”和“可选参数”区域的列数(已弃用,请使用布局自定义)。
dump_build_config / load_build_config:保存和加载 Gooey 的配置信息。
monospace_display:使用等宽字体显示终端输出(已弃用,请使用布局自定义)。
- 以及许多其他选项,例如自定义图标、菜单、进度条等等。
灵活的布局定制,适应不同需求
Gooey 支持多种布局方式,以适应不同类型的命令行程序:
- 高级布局 (Advanced):默认布局,适用于大多数命令行程序,将参数分为“必填参数”和“可选参数”两部分。
- 基本布局 (Basic):简化布局,适用于用户熟悉命令行程序的情况。
- 无配置布局 (No Config):跳过配置界面,直接运行程序。
- 使用
GooeyParser:GooeyParser 是 ArgumentParser 的替代品,允许你指定每个参数的 UI 组件类型,例如 FileChooser、DateChooser 等。
此外,你可以通过 add_argument_group() 方法将参数分组,并自定义每个分组的布局。
国际化支持与菜单定制
Gooey 支持多语言,只需在装饰器中指定语言代码即可。此外,Gooey 还支持自定义菜单,允许你在 GUI 中添加自定义菜单项,例如“关于”、“帮助”等,并可链接到外部网站或显示信息对话框。
动态验证与生命周期事件
Gooey 支持动态验证,可以在运行程序前验证用户输入的参数是否合法。同时,它还提供了生命周期回调机制,允许你根据程序运行结果执行额外的操作,例如在程序成功运行后显示成功提示,或者在程序失败后显示错误信息。
显示进度和自定义图标
想让长时间运行的任务展示进度条?Gooey 能做到,你只需用正则匹配程序控制台的输出,就能驱动 GUI 上的进度条。另外,还可以换掉默认图标,让工具看起来更专业。
打包与分发
Gooey 还支持将程序打包成独立的可执行文件,方便分享给没有 Python 环境的用户,详细步骤可参考官方文档。
结论
Gooey 极大地降低了 Python 命令行工具图形化改造的门槛,只需少量改动就能为你的脚本套上友好的用户界面。如果你也有类似的项目或者想分享更多技巧,欢迎来云栈社区一起交流。
项目地址:https://github.com/chriskiehl/Gooey ,你也可以在开源实战板块挖掘更多有趣的开源项目。
|