当前位置: 首页
科技数码
Gooey,一个神奇的 Python 库

Gooey,一个神奇的 Python 库

热心网友 时间: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。

同类文章
更多
联想IdeaPad Slim 5i轻薄本发布 新款笔记本性能与便携兼备

联想IdeaPad Slim 5i轻薄本发布 新款笔记本性能与便携兼备

联想推出新款轻薄本IdeaPadSlim5i,搭载英特尔最新处理器,配备15英寸高刷新率屏幕。机身采用铝合金材质,提供两种电池容量选择,接口齐全且支持PD快充。整机重约1 49公斤,便于携带,具体售价和上市时间尚未公布。

时间:2026-05-23 11:22
嫦娥七号下半年发射计划公布 后续将开展梦舟飞船揽月着陆器首飞任务

嫦娥七号下半年发射计划公布 后续将开展梦舟飞船揽月着陆器首飞任务

中国深空探测战略升级,载人航天与嫦娥工程整合为“月球探测工程”。长征十号火箭与梦舟飞船完成关键试验,为可重复使用天地往返系统奠定基础。嫦娥七号探测器计划下半年发射,将对月球南极进行综合探测。后续将验证梦舟飞船与揽月着陆器,全力推进2030年前实现载人登月目标。

时间:2026-05-23 11:22
苹果A3577认证曝光 预计为Beats新款蓝牙头戴耳机

苹果A3577认证曝光 预计为Beats新款蓝牙头戴耳机

一款型号为A3577的苹果蓝牙头戴式耳机在FCC认证文件中曝光,具体规格与设计尚未披露。外界猜测其可能属于Beats系列,例如即将更新的StudioPro迭代产品,主要依据是该系列产品已近三年更新周期,市场期待其在音质与降噪等方面有所提升。

时间:2026-05-23 10:51
告别价格战中国车市迎来高质量发展新阶段

告别价格战中国车市迎来高质量发展新阶段

车市价格战正处微妙临界点。二季度起,一股与以往降价潮不同的涨价暗流开始酝酿。截至五月中旬,至少15家主流新能源品牌已释放调价信号,或直接涨价,或收紧优惠,涉及比亚迪、特斯拉、蔚来等传统及新势力车企。

时间:2026-05-23 10:19
谷歌上诉称搜索成功源于创新而非排他协议

谷歌上诉称搜索成功源于创新而非排他协议

谷歌就反垄断裁决提起上诉,辩称其市场地位源于产品创新与持续投资,而非排他协议。谷歌强调与苹果的默认搜索协议是商业自主选择,未损害竞争,用户可自行更改搜索引擎。上诉旨在撤销要求其开放数据、分发竞品结果的整改措施。

时间:2026-05-23 09:47
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程