首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
Gooey,一个神奇的 Python 库

Gooey,一个神奇的 Python 库

热心网友
82
转载
2025-12-15

Gooey基于wxPython构建的,该库的主要目标是为 Python 的 argparse 命令行程序提供简单的 GUI 界面。它特别适合那些需要用户输入多个参数,但又不想编写复杂 GUI 代码的开发者。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

Gooey是一个开源的Python库,可将命令行程序一键转换为用户友好的图形界面(GUI)。

Gooey基于wxPython构建的,该库的主要目标是为Python的argparse命令行程序提供简单的GUI界面。它特别适合那些需要用户输入多个参数,但又不想编写复杂GUI代码的开发者。

使用Gooey,你可以通过很少的代码行,将命令行程序转换为具有图形界面的应用程序。

正式: https://github.com/chriskiehl/Gooey示例: https://github.com/chriskiehl/GooeyExamples

安装

安装Gooey非常简单,可以通过pip进行安装:

pip install Gooey# 或包含可选功能pip install Gooey[images] # 支持图片显示

核心特性

简单易用:只需添加一个装饰器,即可将命令行程序转换为GUI。丰富的控件:支持多种控件,如文件选择器、目录选择器、下拉菜单等。自定义界面:允许自定义程序的名称、描述、图标、默认尺寸等。国际化支持:支持多国语言。验证功能:支持对输入进行验证。进度条:支持在长时间运行时显示进度条。

简单示例

from gooey import Gooey, GooeyParser@Gooey(program_name="文件处理器", language="chinese", default_size=(600, 400))def main(): parser = GooeyParser(description="处理CSV文件") parser.add_argument("input_file", widget="FileChooser", help="选择输入文件") parser.add_argument("output_dir", widget="DirChooser", help="选择输出目录") parser.add_argument("--delimiter", default=",", help="列分隔符") parser.add_argument("--verbose", action="store_true", help="显示详细日志") args = parser.parse_args() print(f"处理 {args.input_file} -> {args.output_dir}")if __name__ == "__main__": main()

组件

Gooey提供了丰富的GUI组件,通过 widget 参数指定。

这些组件与argparse参数无缝集成:

各组件的构造GUI示例:

from gooey import Gooey, GooeyParserimport datetime@Gooey( program_name="文件处理工具", program_descriptinotallow="多功能文件处理工具集", default_size=(900, 700), navigatinotallow="TABBED", tabbed_groups=True, header_bg_color="#2C3E50", body_bg_color="#ECF0F1", language='chinese')def main(): parser = GooeyParser(descriptinotallow="文件处理选项") # 文件选择组 file_group = parser.add_argument_group("文件选择") file_group.add_argument( "input_file", widget="FileChooser", help="选择输入文件", gooey_optinotallow={ 'wildcard': "所有文件 (*.*)|*.*|文本文件 (*.txt)|*.txt", 'default_path': "D:\\" } ) file_group.add_argument( "output_dir", widget="DirChooser", help="选择输出目录" ) # 文本处理组 text_group = parser.add_argument_group("文本处理") text_group.add_argument( "--text_content", widget="Textarea", help="输入要处理的文本内容", gooey_optinotallow={ 'height': 100 } ) text_group.add_argument( "--encoding", choices=['utf-8', 'gbk', 'ascii'], default='utf-8', help="选择文件编码" ) # 日期时间组 date_group = parser.add_argument_group("时间设置") date_group.add_argument( "--start_date", widget="DateChooser", help="选择开始日期" ) date_group.add_argument( "--process_time", widget="TimeChooser", help="选择处理时间" ) # 数值设置组 number_group = parser.add_argument_group("数值设置") number_group.add_argument( "--quantity", widget="IntegerField", help="处理数量", gooey_optinotallow={ 'min': 1, 'max': 100 } ) number_group.add_argument( "--ratio", widget="Slider", help="处理比例", default=50, gooey_optinotallow={ 'min': 0, 'max': 100 } ) # 选项组 options_group = parser.add_argument_group("处理选项") options_group.add_argument( "--process_type", choices=['快速处理', '标准处理', '精细处理'], default='标准处理', help="选择处理方式" ) options_group.add_argument( "--backup", actinotallow="store_true", help="创建备份" ) # 高级选项组 advanced_group = parser.add_argument_group("高级选项") advanced_group.add_argument( "--password", widget="PasswordField", help="输入处理密码" ) advanced_group.add_argument( "--custom_command", widget="Textarea", help="自定义命令", gooey_optinotallow={ 'height': 50 } ) args = parser.parse_args() # 显示处理结果 print("\n===== 处理配置 =====") print(f"输入文件: {args.input_file}") print(f"输出目录: {args.output_dir}") print(f"文本内容长度: {len(args.text_content) if args.text_content else 0}") print(f"编码方式: {args.encoding}") print(f"开始日期: {args.start_date}") print(f"处理时间: {args.process_time}") print(f"处理数量: {args.quantity}") print(f"处理比例: {args.ratio}%") print(f"处理方式: {args.process_type}") print(f"是否备份: {'是' if args.backup else '否'}") print(f"密码是否设置: {'是' if args.password else '否'}") print(f"自定义命令: {args.custom_command if args.custom_command else '无'}")if __name__ == "__main__": main()

应用场景

为内部工具提供非技术用户友好的界面快速原型开发,避免编写复杂GUI代码数据预处理/分析脚本的可视化操作教学演示中展示命令行工具的工作原理需要文件/目录选择器等GUI组件的场景

总结

使用建议:

最佳场景:快速为现有命令行工具添加GUI推荐组合:Gooey+argparse+Pandas(数据处理工具)进阶方案:复杂需求可结合PyQt/Tkinter

Gooey通过单行装饰器即可将命令行程序转化为用户友好的图形界面。智能解析argparse参数并自动渲染为丰富的GUI组件(如文件选择器、复选框、下拉菜单等),彻底消除了编写传统GUI代码的复杂度。

来源:https://www.51cto.com/article/817304.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

G胖退出Valve游戏开发 怕员工不敢反驳
游戏资讯
G胖退出Valve游戏开发 怕员工不敢反驳

V社联合创始人G胖调整角色:从主导开发转向赋能团队,释放创意生产力 近期一则消息引发游戏行业广泛关注:Valve联合创始人加布·纽维尔(“G胖”)在公司内部进行了一次重要角色转型。此次调整的关键原因,与他个人在公司中的特殊影响力息息相关。根据透露,这位创始人决定减少在具体游戏开发工作中的直接深度参与

热心网友
04.05
红魔姜超“冒险爆料”:Pad 新品不是四月就是五月发布,一定不让大家失望
科技数码
红魔姜超“冒险爆料”:Pad 新品不是四月就是五月发布,一定不让大家失望

红魔姜超透露:全新游戏平板将于四月或五月发布,承诺带来惊艳体验 游戏硬件领域即将迎来重磅更新。努比亚红魔游戏手机的产品线负责人姜超,近日通过社交媒体进行了一次颇具悬念的“前瞻剧透”,成功引发了广大游戏玩家和科技爱好者的高度关注。他明确指出,红魔全新一代游戏平板的发布日期已锁定在四月或五月,并使用了“

热心网友
04.05
金铲铲之战S17天煞羁绊效果一览
游戏攻略
金铲铲之战S17天煞羁绊效果一览

金铲铲之战S17天煞羁绊:效果解析与实战应用 在《金铲铲之战》S17赛季中,【天煞】是一个定位独特的专属羁绊,仅由5费英雄“劫”所携带。激活这一羁绊需要特定的前置条件——玩家必须在强化符文选择阶段获得【入侵者劫】。一旦成功解锁,劫将获得全新的技能机制,从而在战局中发挥出颠覆性的作用。 金铲铲之战S1

热心网友
04.05
蓝点工作室被索尼移除 第一方阵容调整
游戏资讯
蓝点工作室被索尼移除 第一方阵容调整

索尼调整第一方工作室阵容,王牌重制团队蓝点工作室正式“退出”核心名单 近日,索尼在其PlayStation Studios官方网站的更新中做出了一项关键调整,引发了游戏玩家和行业观察者的广泛关注:曾凭借《恶魔之魂:重制版》等作品赢得盛誉的蓝点工作室,已不再出现在索尼核心第一方工作室的名单之中。此次页

热心网友
04.05
未来人类 X98W 移动“工作站”笔记本电脑上线官网,4 月内发售
科技数码
未来人类 X98W 移动“工作站”笔记本电脑上线官网,4 月内发售

未来人类X98W移动工作站正式发布:重新定义移动端专业性能的新标杆 在专业移动计算领域,总有一些产品能够打破常规认知。近日,未来人类(TerransForce)正式在其官网上线了全新的X98W高性能移动工作站,并宣布将于本月内全面发售。这款设备的问世,无疑为那些在移动办公环境中仍需要桌面级别强悍性能

热心网友
04.05