Gooey是python的一个扩展模块,能够使用一条命令,将命令行程序变成一个 GUI 程序。它能够解析argparse模块的命令行参数,将之变成wxpython的GUI控件。当然,Gooey本身也带有命令行解析的函数—GooeyParser。下面就简单介绍Gooey的用法,以及优缺点。
安装Gooey
最简单的安装方法:
或者:
然后运行setup.py :
相关依赖:
wxpython
安装:pip install wxpython (windows下需要去官网下载安装包)
使用Gooey转化argparse
最简单的例子,将argparse参数转化为GUI控件:
运行截图:
说明:可以看到Gooey作为装饰器使用,Gooey()可以设置参数。
参数:
参数中最常用的有program_name(标题,默认为文件名),default_size(界面大小),image_dir(ico图标地址,可以相对地址,windows下注意用反斜杠)
运行截图:
使用GooeyParse
简单例子:
运行截图:
说明:image_dir设置为当前目录下image目录,则程序会去image目录下寻找相应的图片来覆盖默认的图片,因此覆盖的图片名字必须为默认的图片名;可以看到运行界面上分为Required Arguments与Optional Arguments参数,代码中’test’对应前者,’-test’对应后者;metavar表示描述信息;action表示控件类型;help为帮助信息;widget为小工具;default为默认内容。
image目录下图片文件名,分别用来覆盖界面上的图片:
- program_icon.ico ico图标
- success_icon.png 运行成功的图标
- running_icon.png 正在运行时的图标
- loading_icon.gif 加载时的图标
- config_icon.png 配置图片
- error_icon.png 出错时的图片
action内容表示参数类型,分别对应着wxpython相应的控件:
- store TextCtrl
- store_const CheckBox
- store_true CheckBox
- store_False CheckBox
- append TextCtrl
- count DropDown
- Mutually Exclusive Group RadioGroup
- chooice DropDown
除了action之外,Gooey还提供了一些小工具(Widgets)
- DirChooser 目录选择按钮工具
- FileChooser 文件选择按钮工具
- DateChooser 时间选择按钮工具
优缺点
说说个人使用的一点总结,优点是方便,无需太多的代码,也免去了界面设计。缺点是不太适合操作非常复杂的程序,且目前支持的控件不多。额外一点,在打包程序时,会有很多Bug,有待解决。
参考文档:
GitHub地址:https://github.com/chriskiehl/Gooey
官方例子:https://github.com/chriskiehl/GooeyExamples/tree/master/examples
官方文档:https://github.com/chriskiehl/Gooey#how-does-it-work